Sie sind auf Seite 1von 26

Marta Torneiro (ci08021)

Mnica Silva (ci08050)

Patrcia Latourrette(ci05031)

Bases de Dados

Relatrio do Trabalho Prtico

Docente: Professor Gabriel de Sousa Torcato David

Licenciatura em Cincia da Informao

Maio 2011

1
Sumrio

Sumrio ......................................................................................................................................... 2

Introduo .................................................................................................................................... 3

Descrio do problema ................................................................................................................. 4

Modelo de Classes ........................................................................................................................ 5

Esquema Relacional ...................................................................................................................... 7

Instncia Exemplo e Perguntas Base de Dados .......................................................................... 8

Apresentao de tabelas e formulrios exemplificativos da Base de Dados .............................. 21

Concluso .................................................................................................................................... 26

2
Introduo

O presente relatrio foi elaborado no mbito do trabalho prtico da


disciplina de Bases de Dados, leccionada no 2 semestre do 3 ano da
Licenciatura em Cincia da Informao.
Este trabalho tem como objectivo constituir uma oportunidade de
experimentao das matrias expostas nas aulas da disciplina, mais
concretamente o modelo relacional, a linguagem SQL e as tcnicas de
apresentao de dados.
Neste relatrio, so explicitadas todas as fases de desenvolvimento do
trabalho prtico: a descrio sucinta do problema e o tema escolhido; o modelo
de classes, com indicao das classes, atributos e domnios, assim como as
suas associaes; o esquema relacional; a inveno de uma instncia exemplo
e a sua implementao numa base de dados relacional; a elaborao de um
mnimo de 5 perguntas base de dados em lgebra relacional e em SQL e
respectivos resultados.
Por fim, preparou-se a interface propriamente dita, de forma a ser
perceptvel a construo e utilizao da mesma.

3
Descrio do problema

O trabalho por ns apresentado consiste na construo de uma possvel


base de dados para um Salo de Beleza, tendo em conta os clientes, cuja ficha
j existe na nossa Base de Dados, os funcionrios, a agenda e as marcaes.
O Salo de Beleza por ns criado encontra-se aberto das 9h da manh
at s 20h da noite, encerrando aos Domingos e cuja organizao est
dependente de uma Agenda, onde so registadas todas as Marcaes. As
marcaes dependem directamente da disponibilidade dos funcionrios
(disponibilidade esta apresentada na Agenda do Salo), em termos de hora e
dia e, consequentemente, dos servios disponveis no espao.
Os servios disponveis no Salo de Beleza enquadram-se nas funes
dos Funcionrios do presente Salo. Assim sendo, os servios que podem ser
requisitados pelos nossos clientes, fazem parte das funes, pelos nossos
funcionrios desempenhadas, e incluem: Cabeleireiro, Massagem, Esttica e
Tatuagem.

4
Modelo de Classes

O modelo de classes pelo nosso grupo elaborado, teve por base uma
discusso acerca de todos os requisitos e intervenientes essenciais para o
funcionamento do Salo de Beleza.
Assim sendo, optamos por construir 4 tabelas, que passamos a
apresentar em seguida:

AGENDA
o Nagenda
o Dia
o Hora_inicio
o No_clientes
o Codf

MARCAO
o Nagenda
o Codc
o Servico
o Hora

FUNCIONRIO
o Codf
o Nome
o NIF
o Morada
o Cod_postal
o Contacto
o E-mail
o Data_nasce
o Funcao
o Sexo

5
CLIENTE
o Codc
o Nome
o Contacto
o Morada
o Email
o Data_nasce
o Cod_postal
o Profissao
o NIF
o Sexo

Apresentamos, seguidamente, o esquema do Modelo de Classes com as


respectivas Chaves assinaladas e Relaes estabelecidas:

6
Esquema Relacional

Neste ponto, apresentamos o esquema relacional do trabalho


por ns desenvolvido, tendo por base o Modelo de Classes
previamente apresentado.
Assim sendo, o Esquema relacional obtido foi o seguinte:

Funcionrio (codf, nome, NIF, morada, cod_postal, contacto, data_nasce,


funcao, sexo)

Cliente(codc, nome, NIF, morada, cod_postal, contacto, data_nasce, profissao,


sexo)

Agenda(nagenda, dia, hora_inicio, no_clientes, codf Funcionario)

Marcacao(nagenda Agenda, hora, preco_base, servico, codc Cliente)

7
Instncia Exemplo e Perguntas Base de Dados

Na elaborao do nosso trabalho, tivemos por base o programa


Microsoft Access 2007, com o objectivo de criar uma base de dados bem
estruturada.
Na base de dados do nosso Salo de Beleza, so visualizadas 4
tabelas e as respectivas relaes, as questes Base de Dados por ns
criadas quer em linguagem SQL, quer em lgebra Relacional.
Assim, sero devidamente apresentados os resultados obtidos, bem
como os formulrios respectivos a cada uma das questes, previamente
seleccionadas.

8
1. Qual o nmero de marcaes e dinheiro total gasto, por cada
cliente do Salo de Beleza? (ordenados de forma ascendente pelo nmero de
marcaes)

Linguagem SQL:

SELECT cliente.codc, nome, COUNT(marcacao.codc) AS nummarcacoes,


SUM(marcacao.preco_base) AS total

FROM cliente

LEFT JOIN marcacao ON marcacao.codc=cliente.codc

GROUP BY cliente.codc, nome

ORDER BY 3;

lgebra Relacional:

3 (codc, nome, nummarcacoes=CNT(*), total=SUM(preco_base) (C M))


Resultado obtido, esquematicamente:

Formulrio obtido:

9
2. Quais os dados de todos os clientes do sexo Feminino?

Linguagem SQL:

SELECT *

FROM cliente

WHERE sexo='F';

lgebra Relacional:

Sexo = F (C)


Resultado obtido, esquematicamente:

Formulrio obtido:

10
3. Quais os dados de todos os clientes do sexo Masculino?

Linguagem SQL:

SELECT *

FROM cliente

WHERE sexo='M';

lgebra Relacional:

Sexo = M (C)


Resultado obtido, esquematicamente:

Formulrio obtido:

11
4. Indicar o dia, a hora, o cdigo do Funcionrio e o servio em que a hora
da marcao coincide com o incio do perodo de marcaes da agenda.

Linguagem SQL:

SELECT Agenda.dia, Marcacao.hora, Agenda.codf, Marcacao.servico

FROM Marcacao, Agenda

WHERE Marcacao.nagenda=Agenda.nagenda AND Marcacao.hora=Agenda.hora_inicio;

lgebra Relacional:

dia, hora, codf, servico(M M.nagenda=A.nagenda M.hora=A.hora_inicio A)


Resultado obtido, esquematicamente:

Formulrio obtido:

12
5. Quais as moradas (rua e cdigo-postal) existentes na Base de Dados?

Linguagem SQL:

SELECT morada, cod_postal

FROM Cliente

UNION SELECT morada, cod_postal

FROM Funcionario;

lgebra Relacional:

morada, cod_postal (C) morada, cod_postal (F)


Resultado obtido, esquematicamente:

Formulrio obtido:

13
6. Quais os nomes e respectivas funes de todos os funcionrios do
Salo de Beleza? (Ordenados Alfabeticamente por nome)

Linguagem SQL:

SELECT nome, funcao

FROM Funcionario

ORDER BY nome;

lgebra Relacional:

nome ( nome, funcao (F))

Resultado obtido, esquematicamente:

Formulrio obtido:

14
7. Quais os nomes dos Funcionrios do Salo de Beleza, cujos nomes se
encontram entre David Guetta e Katy Perry? (Ordenados
alfabeticamente por nome)

Linguagem SQL:

SELECT *

FROM funcionario

WHERE nome Between 'David Guetta' And 'Katy Perry';

lgebra Relacional:

David Guetta < nome > Katy Perry

Resultado obtido, esquematicamente:

Formulrio obtido:

15
8. Qual o nmero de marcaes para cada Funcionrio e o total de
dinheiro recebido? (Ordenado de forma descendente por nmero de
marcaes)

Linguagem SQL:

SELECT Funcionario.codf, nome, COUNT(Marcacao.codc) AS nummarcacoes,


SUM(Marcacao.preco_base) AS total

FROM (Funcionario

INNER JOIN Agenda ON Agenda.codf=Funcionario.codf)

INNER JOIN Marcacao ON Marcacao.nagenda=Agenda.nagenda

GROUP BY Funcionario.codf, nome

UNION SELECT Funcionario.codf, nome, 0 AS nummarcacoes, 0 AS total

FROM Funcionario

WHERE Funcionario.codf NOT IN (

SELECT Agenda.codf

FROM Agenda

ORDER BY nummarcacoes DESC;

lgebra Relacional:

nummarcacoes desc ( codf, nome, nummarcacoes=CNT(*), total=SUM(preco_base) (F A


M))

Resultado obtido, esquematicamente:

16
Formulrio obtido:

17
9. Quais os servios e preos correspondentes prestados pelos
funcionrios do Salo de Beleza? (Ordenados de forma ascendente)

Linguagem SQL:

SELECT DISTINCT servico, preco_base AS preco

FROM funcionario, agenda, marcacao

WHERE funcionario.codf=agenda.codf AND agenda.nagenda=marcacao.nagenda

ORDER BY preco_base;

lgebra Relacional:

( servico, preco (F F.codf=A.codf A.nagenda=M.nagenda A M))


Resultado obtido, esquematicamente:

Formulrio obtido:

18
10. Qual o servio mais caro e o preo respectivo?

Linguagem SQL:

SELECT servico, AVG(preco_base) AS preco

FROM funcionario, agenda, marcacao

WHERE funcionario.codf=agenda.codf AND agenda.nagenda=marcacao.nagenda

GROUP BY servico

HAVING AVG(preco_base)=(SELECT MAX(preco) FROM Preos_ordem_ascendente);

lgebra Relacional:

P = servico, preco=AVG(preco_base) (F A M)
PMAX = max_preco=MAX(preco)(P)
servico, max_preco (P preco=max_preco PMAX)

Resultado obtido, esquematicamente:

Formulrio obtido:

19
11. Quais os nomes e contactos existentes na Base de Dados? (Ordenados
alfabeticamente por nome)

Linguagem SQL:

SELECT nome, contacto

FROM cliente

UNION SELECT nome, contacto

FROM funcionario

ORDER BY nome;

lgebra Relacional:

nome ( nome, contacto (C)) U ( nome, contacto (F))

Resultado obtido, esquematicamente:

Formulrio obtido:

20
Apresentao de tabelas e formulrios exemplificativos
da Base de Dados

Neste ponto, temos o intuito de apresentar as 4 tabelas, bem como exemplos


de formulrios relativos a cada componente da Base de Dados do nosso Salo de
Beleza.

Tabela Agenda

Tabela Marcao

21
Tabela Funcionrios

Tabela Clientes

22
Exemplo de Formulrio Agenda

Exemplo de Formulrio Marcao

23
Exemplo de Formulrio Clientes

Exemplo e Formulrio Funcionrios

24
Exemplo de Formulrio Men

Exemplo de Formulrio Queries

25
Concluso

Aps a realizao deste trabalho pudemos aprofundar os


componentes tericos e prticos da unidade curricular de Base de Dados. As
principais dificuldades centraram-se na elaborao das queries.
No que diz respeito componente visual (aspecto) da Base de Dados,
tentamos desenvolver algo simples e com um ar fresco e, principalmente,
funcional, sem descuidar o fim para o qual esta se destina.
Desenvolvemos alguns botes dinmicos, simples e que permitem um
fcil acesso, aquando da navegao na nossa Base de Dados.
Assim sendo ficamos mais familiarizados com o uso de SGBD
comerciais, mais concretamente o MS Access e aplicamos os nossos
conhecimentos no que refere linguagem SQL e lgebra Relacional.

26

Das könnte Ihnen auch gefallen