Considere as relações (tabelas) R1 e R2 e os respectivos atributos:

Propaganda
ESCOLA SUPERIOR DE TECNOLOGIA DE VISEU
CURSO: CONTABILIDADE E ADMINISTRAÇÃO
APLICAÇÕES DE
INFORMÁTICA
06-09-2004
Exame – Época de Recurso
1- Questões conceptuais
1.1- Considere as relações (tabelas) R1 e R2 e os respectivos atributos:
R1: A B C D E
R2: B C E F G
Nota: Em cada tabela os atributos sublinhados definem a chave primária.
Considere o seguinte conjunto característico de dependências funcionais entre atributos:
AB  CDE ; C  DE ; BC  EFG ; B  G ; A  D ; AC  DE
1.1.1- Crie a estrutura de tabelas necessária para garantir a normalização à 3FN.
Nota: Sublinhe com traço contínuo as chaves primárias e com traço
descontínuo as chaves estrangeiras.
1.1.2- Indique as eventuais dependências funcionais redundantes e justifique
a sua escolha.
1.2- Explicite as vantagens fundamentais que decorrem da adopção da arquitectura
ANSI-SPARC.
1.3- Refira as consequências da ausência de normalização à 3FN.
2- Normalização relacional e estruturação de bases de dados
Após a normalização das seguintes relações à 3ª FN, identifique as chaves de cada tabela e os
relacionamentos necessários (apresenta-se o significado de alguns atributos, cuja interpretação pode
suscitar alguma dúvida):
Nota 1: Sublinhe as chaves primárias (traço contínuo) e as chaves estrangeiras (traço descontínuo).
Nota 2: Apresente os relacionamentos entre as tabelas.
LEITORES
Número
Nome
Morada
CódPostal
CódLeit : Código de identificação do leitor
REQUISIÇÕES
NúmReq
DataReq
CódLivro1
Localidade
Título
CódEdit
CódCateg
Categoria
CódCateg : Código da categoria do leitor
Categoria : Designação da categoria do leitor (exemplo: Assinante, Visitante, Sócio, etc....)
CódLivro2
CódLivro3
NúmReq : Número da requisição de livros
DataReq : Data da requisição
LIVROS
CódLivro
Telefone
DataEntr
CódLivroN : Código do Nº livro da requisição ( N = 1 , 2 , 3 )
DataEntr : Data de entrega dos livros da requisição
Editora
TelefEdit
FaxEdit
CódPostal
Localidade
CódTópico
Tópico
REQUISIÇÕES
NúmReq
DataReq
CódLivro1
CódLivro2
CódLivro3
NúmReq : Número da requisição de livros
DataReq : Data da requisição
LIVROS
CódLivro
Título
CódEdit
CódLivroN : Código do Nº livro da requisição ( N = 1 , 2 , 3 )
DataEntr : Data de entrega dos livros da requisição
Editora
CódLivro : Código de identificação do livro na biblioteca
CódEdit : Código de identificação da editora do livro
Editora : Designação da editora do livro
TelEdit : Telefone da editora
AUTORES
CódAutor
Autor
DataEntr
TelefEdit
FaxEdit
CódPostal
Localidade
CódTópico
Tópico
FaxEdit : Fax da editora
CódTópico : Código de identificação do tópico ou área temática em que o
livro se enquadra (exemplo: História, Economia, Informática, etc.)
Tópico : Designação do tópico ou área temática em que o livro se enquadra
Nacion
CódAutor : Código de identificação do autor de um livro
Autor : Nome do autor de um livro
Nacion : Nacionalidade do autor
Informações adicionais:
- Uma requisição é feita por um leitor e pode conter até três livros ;
- Um livro pode ser escrito por um ou vários autores e está associado a um único tópico .
3- Linguagem SQL
A partir da base de dados ‘Fornecedores, Peças e Projectos’ (em anexo), execute as seguintes
consultas em linguagem SQL padrão:
3.1- Inserir um novo fornecedor S10 na tabela S. O nome e a cidade são respectivamente,
‘White’ e ‘New York’, o status ainda não é conhecido;
3.2- Obter os números das peças fornecidas para qualquer projecto por um fornecedor da
mesma cidade que o projecto;
3.3- Obter os fornecimentos em que as quantidades se situam entre 300 e 750, inclusive;
3.4- Obter os números das peças fornecidas por fornecedores londrinos para projectos em
Londres (‘London’);
3.5- Quantos projectos são fornecidos pelo fornecedor S1?
Base de dados Fornecedores - Peças - e - Projectos
Base de dados de Fornecimentos: Fornecedores-Peças-Projectos
S
P
P#
S#
SNAME
STATUS
CITY
S1
Smith
20
London
S2
Jones
10
Paris
S3
Blake
30
Paris
S4
Clark
20
London
S5
Adams
30
Athens
PNAME
COLOR
SPJ
S#
P#
J#
QTY
S1
P1
J1
200
S1
P1
J4
700
S2
P3
J1
400
S2
P3
J2
200
S2
P3
J3
200
S2
P3
J4
500
S2
P3
J5
600
WEIGHT
CITY
S2
P3
J6
400
P1
Nut
Red
12
London
S2
P3
J7
800
P2
Bolt
Green
17
Paris
S2
P5
J2
100
P3
Screw
Blue
17
Rome
S3
P3
J1
200
P4
Screw
Red
14
London
S3
P4
J2
500
P5
Cam
Blue
12
Paris
S4
P6
J3
300
P6
Cog
Red
19
London
S4
P6
J7
300
S5
P2
J2
200
S5
P2
J4
100
S5
P5
J5
500
S5
P5
J7
100
S5
P6
J2
200
S5
P1
J4
100
S5
P3
J4
200
S5
P4
J4
800
S5
P5
J4
400
S5
P6
J4
500
J
J#
JNAME
CITY
J1
Sorter
Paris
J2
Punch
Rome
J3
Reader
Athens
J4
Console
Athens
J5
Collator
London
J6
Terminal
Oslo
J7
Tape
London
4- Implementação de uma base de dados
4.1- A partir do ficheiro SweetLil.mdb , proceda às seguintes alterações:
- A data do prazo de validade não pode ser anterior à data de encomenda e o operador
deve ser avisado sempre que isso não se verifique;
- O método de encomenda é '1', por defeito;
- A quantidade disponível de cada bombom, numa caixa, não deve ser inferior a 3;
- O telefone e a morada de cada cliente nunca poderão ser valores "null";
- Em todos os objectos da base de dados o campo correspondente à data do prazo de
validade ("válido até") deverá aparecer como "Limite de validade";
4.2- Construa uma consulta de referência cruzada que permita visualizar as quantidades
encomendadas de cada bombom (nome do bombom) por cada cliente (nome do cliente).
Nota 1: Restrinja a consulta para apenas obter os bombons cujo nome começa pela letra
‘B’ e os nomes dos clientes também começam pela letra ‘B’.
Nota 2: Na consulta de referência cruzada deverá constar uma coluna onde é visualizada
a quantidade total de cada bombom.
4.3- Crie um formulário para encomendas, onde o campo ‘método de encomenda’ deve ser
preenchido por um grupo de opções e o número do cliente deve ser preenchido por uma
caixa de combinação, onde é seleccionado o nome do cliente (o número fica oculto).
4.4- Personalização de formulários
4.4-1. Crie duas macros que deverão realizar as seguintes operações:
- Macro1: Fecha o formulário de encomendas e abre o formulário de clientes;
- Macro2: Fecha o formulário de clientes e abre o formulário de encomendas;
4.4-2. Cada macro anterior deve ser executada com um clique de rato sobre um botão de
comando. Crie dois botões, um para cada macro, no formulário adequado.
4.5- Crie um menu para a base de dados, com o título “Menu Principal”, com as seguintes
características:
- o nome do formulário é “Start Application”
- um botão de comando para sair da aplicação;
- um botão de comando para abrir os formulários de encomendas;
- um botão de comando para abrir os formulários de clientes;
- um botão de comando para executar a consulta de referência cruzada criada em 4.2.;
- o formulário do menu não deve conter botões Min/Max, selectores de registo,
navegador de registo e linhas divisoras ou barras de deslocamento;
- os limites do formulário não devem ser dimensionáveis (estilo “diálogo”);
- o formulário principal deverá arrancar automaticamente com o início da aplicação.
Download