Você está na página 1de 8

Projeto Parte 2 Projeto Lgico Normalizado

Grupo:
Paulo Humberto Sapio de Morais - 8910591
Leonardo Guarnieri de Bastiani - 8910434
Guilherme Jos Acra - 7150306
Fbio Satoshi Sumida - 8910542

1. Esquema Lgico:

Pais (Nome, LetraHino, Continente, Bandeira)


Medalha (Tipo)
MedalhasPais (Pais, Medalha, Quantidade) [1] [I]
Atributo Pais referencia a tabela Pais
Atributo Medalha referencia a tabela Medalha

Arbitro (ID, Nome, DataNascimento, NPassaporte, Sexo) [2]


Arbitro deve possuir pelo menos uma entrada na tabela NacionalidadeArbitro

Atleta (ID, Nome, DataNascimento, NPassaporte, Sexo, Altura, Peso, Pais) [2,3] [II]
Atributo Pais referencia a tabela Pais
Atleta deve possuir pelo menos uma entrada na tabela NacionalidadeAtleta

NacionalidadeArbitro (Arbitro, Pais)


Atributo Arbitro referencia a tabela Arbitro
Atributo Pais referencia a tabela Pais

NacionalidadeAtleta (Atleta, Pais)


Atributo Atleta referencia a tabela Atleta
Atributo Pais referencia a tabela Pais

UnidadePontuacao (Descricao)
Esporte (Nome, UniPont) [4]
Atributo UniPont referencia a tabela UnidadePontuacao

Habilitacao (Arbitro, Esporte)


Atributo Arbitro referencia a tabela Arbitro
Atributo Esporte referencia a tabela Esporte

Modalidade (Esporte, Nome, NMaxAtleta)


Atributo Esporte referencia a tabela Esporte

Categoria (Descricao)
Modalidade_Categoria (Mod_Esporte, Mod_Nome, Categoria, ID) [5]
Atributos Mod_Esporte e Mod_Nome referencia a tabela Modalidade
Atributo Categoria referencia a tabela Categoria

Equipe (Pais, Mod_Cat, Numero, ID) [5]


Atributo Pais referencia a tabela Pais
Atributo Mod_Cat referencia a tabela Modalidade_Categoria
Equipe deve possuir pelo menos uma entrada na tabela ParticipaEquipe
ParticipaEquipe (Atleta, Equipe) [III]
Atributo Atleta referencia a tabela Atleta
Atributos Equipe referenciam a tabela Equipe

ComplexoDesportivo (Nome, Endereco, Capacidade)


Suporte (ComplexDesport, Esporte)
Atributo ComplexDesport referencia a tabela ComplexoDesportivo
Atributo Esporte referencia a tabela Esporte

Fase (Descricao)
Competio (Fase, Mod_Cat, Numero, ID, Dia*, Horario*, Obs*, ComplexDesport*)[5, 6] [IV]
Atributo Fase referencia a tabela Fase
Atributo Mod_Cat referencia a tabela Modalidade_Categoria
Atributo ComplexDesport referencia a tabela ComplexoDesportivo

ProximaCompeticao (Anterior, Proxima, IntColocacao)


Atributo Anterior referencia a tabela Competicao
Atributo Proxima referencia a tabela Competicao

CompeteEquipe (Equipe, Competicao, Pontuacao*, Colocacao*) [7] [V]


Atributo Equipe referencia a tabela Equipe
Atributo Competicao referencia a tabela Competicao

Papel (Descricao)
Arbitra (Arbitro, Competicao, Papel) [VI]
Atributo Arbitro referencia a tabela Arbitro
Atributo Competicao referencia a tabela Competicao
Atributo Papel referencia a tabela Papel

a. Justificativas

[1]. Escolheu-se armazenar o atributo Quantidade, pois a quantidade de medalhas


conquistadas por cada pas ser uma busca recorrente.
[2]. Uso do procedimento padro 7, pois queremos garantir a especializao total e o
critrio de especializao definido pelo usurio. Alm disso, normalmente o acesso
ser feito buscando a entidade em sua totalidade, incluindo seus atributos genricos e
especficos (no caso do Atleta).
[3]. Escolheu-se colocar chave estrangeira para Pais na tabela Atleta, pois h
participao total da entidade Atleta. A alternativa seria o uso de uma tabela separada
para a relao, o que no garantiria a participao total.
[4]. Situao igual ao caso da justificativa anterior, pois h participao total da entidade
Esporte no relacionamento com UnidadePontuacao.
[5]. A agregao foi inserida diretamente na relao, pois esta ltima no possui
atributos e no possvel que haja relao sem que haja agregao. Alm disso, h a
vantagem do uso de menos tabelas do que usando a relao separada. Foi usado um ID
como chave primria para facilitar as referncias tabela. Seria mais complexo o uso de
trs chaves primrias.
[6]. Escolheu-se colocar chave estrangeira para ComplexoDesportivo na tabela
Competicao, pois apesar de no haver participao total (por isso o uso de *), em algum
momento uma competio sempre ter um local.
[7]. Escolheu-se armazenar o atributo Colocao, pois a colocao das equipes ser uma
busca recorrente.

b. Regras de negcio

[I]. Quando uma Equipe estiver relacionada (pela tabela CompeteEquipe) a uma
Competicao que seja de Fase que valha medalha e a Colocao for primeiro, segundo ou
terceiro lugar, incrementa a quantidade de medalhas de ouro, prata ou bronze,
respectivamente, do pas da equipe.
[II]. O valor inserido no atributo Pais, que o pas ao qual o atleta representa, s
vlido se ele aparecer relacionado ao atleta em questo na tabela NacionalidadeAtleta.
[III]. Um atleta s pode estar relacionado a uma determinada equipe nesta tabela
se o pas da equipe (atributo Pais na tabela Equipe) for o mesmo ao qual ele representa
(atributo Pais na tabela Atleta).
[IV]. Para que o atributo ComplexDesport seja vlido, o complexo desportivo
referenciado deve ter suporte (tabela Suporte) ao esporte da competio (presente na
tabela Modalidade_Categoria referenciada).
[V]. Uma equipe s pode competir em competies de sua modalidade e categoria.
Ou seja, para uma equipe estar relacionado a uma competio nesta tabela, o valor do
atributo Mod_Cat para a instncia da tabela Equipe tem que ser o mesmo da tabela
Competicao.
O atributo Colocacao calculada tendo como base o atributo Pontuacao de
todas as equipes relacionadas mesma competio. O formato do contedo do atributo
Pontuacao referente unidade de pontuao (tabela UnidadePontuacao) relacionado
ao esporte da competio.
[VI]. Um rbitro s pode estar relacionado a uma competio de uma modalidade
referente a um esporte ao qual ele seja habilitado (tabela Habilitacao).

c. Exemplos de domnios

Nomes de pases: Conjunto de nomes possveis para pases Strings de no mximo 50


caracteres.
Letras de hinos: Conjunto de todas as possveis letras de hinos de pases Strings de no
mximo 3000 caracteres.
Nomes de continentes: Nomes possveis de continentes: {Amrica, sia, Europa, frica
e Oceania} Strings.
Bandeiras: Imagem de bandeiras nacionais Arquivos binrios no formato JPEG.
Tipos de medalha: Tipos possveis de medalha: {Ouro, Prata, Bronze} Strings.
Quantidade de medalhas: Conjunto de nmeros possveis de medalhas de cada tipo
ganhas por um pas Nmeros naturais de 3 algarismos.
Identificador de pessoas: Conjunto de valores possveis de nmero de identificao (ID)
para as pessoas que participam das olimpadas Nmeros naturais de 6 algarismos.
Nomes de pessoas: Conjunto de nomes possveis para pessoas Strings de no mximo
60 caracteres.
Datas de nascimento: Conjunto de datas possveis Strings no formato dd/mm/aaaa.
Nmeros de passaportes: Conjuntos dos possveis nmeros de passaporte Strings
formadas por duas letras seguido de 6 algarismos.
Sexo: Conjunto dos identificadores de sexo: {M, F} Caractere.
Peso de pessoas: Conjunto dos possveis pesos de pessoas (em Kg) Nmeros reais
maiores que zero com 6 algarismos, sendo 3 deles decimais.
Altura de pessoas: Conjunto das possveis alturas de pessoas (em metros) Nmeros
reais maiores que zero com 3 algarismos, sendo 2 deles decimais.
Descries de unidade de pontuao: Conjunto de possveis descries de unidades de
pontuao em esportes que fazem parte das olimpadas Strings de no mximo 25
caracteres.
Nomes de esportes: Conjunto dos possveis nomes para esportes que participam das
olimpadas Strings de no mximo 40 caracteres.
Nomes de modalidades: Conjuntos dos possveis nomes para modalidades dos esportes
que participam das olimpadas Strings de no mximo 40 caracteres.
Nmeros mximos de atletas: Conjuntos dos possveis nmeros mximos de atletas que
participam das modalidades dos esportes que participam das olimpadas Nmeros
naturais diferentes de zero com 3 algarismos.
Nomes de complexos desportivos: Conjuntos dos possveis nomes de complexos
desportivos Strings de no mximo 60 caracteres.
Endereos: Conjuntos dos possveis endereos Strings de no mximo 100 caracteres.
Capacidades: Conjuntos dos possveis valores de capacidade de complexos desportivos
Nmeros naturais diferentes de zero de 6 algarismos.

d. Exemplos de uso dos domnios

Pas:
Dom(Nome) = Nomes de pases.
Dom(LetraHino) = Letras de hinos.
Dom(Continente) = Nomes de continentes.
Dom(Bandeira) = Bandeiras.
Medalha:
Dom(Tipo) = Tipos de medalha.
MedalhasPais:
Dom(Pais) = Nomes de pases.
Dom(Medalha) = Tipos de medalha.
Dom(Quantidade) = Quantidade de medalhas.
Arbitro:
Dom(ID) = Identificador de pessoas.
Dom(Nome) = Nomes de pessoas.
Dom(DataNascimento) = Datas de nascimento.
Dom(NPassaporte) = Nmeros de passaportes.
Dom(Sexo) = Sexo.
Atleta:
Dom(ID) = Identificador de pessoas.
Dom(Nome) = Nomes de pessoas.
Dom(DataNascimento) = Datas de nascimento.
Dom(NPassaporte) = Nmeros de passaportes.
Dom(Sexo) = Sexo.
Dom(Peso) = Peso de pessoas.
Dom(Altura) = Altura de pessoas.
Dom(Pais) = Nomes de pases.
UnidadePontuacao:
Dom(Descricao) = Descries de unidade de pontuao.
Esporte:
Dom(Nome) = Nomes de esportes.
Dom(UniPont) = Descries de unidade de pontuao.
Modalidade:
Dom(Esporte) = Nomes de esportes.
Dom(Nome) = Nomes de modalidades.
Dom(NMaxAtleta) = Nmeros mximos de atletas.
ComplexoDesportivo:
Dom(Nome) = Nomes de complexos desportivos.
Dom(Endereo) = Endereos.
Dom(Capacidade) = Capacidades.

2. Dependncias funcionais e multivaloradas

Pais:
Nome --> LetraHino, Continente, Bandeira
MedalhasPais:
Pais, Medalha --> Quantidade
Arbitro:
ID --> Nome, DataNascimento, NPassaporte, Sexo
NPassaporte --> ID, Nome, DataNascimento, Sexo
Atleta:
ID --> Nome, DataNascimento, NPassaporte, Sexo, Altura, Peso, Pais
NPassaporte --> ID, Nome, DataNascimento, Sexo, Altura, Peso, Pais
NacionalidadeArbitro:
Arbitro -->> Pais
NacionalidadeAtleta:
Atleta -->> Pais
Esporte:
Nome --> UniPont
Habilitacao:
Arbitro -->> Esporte
Modalidade:
Esporte, Nome --> NMaxAtleta
Modalidade_Categoria:
ID --> Mod_Esporte, Mod_Nome, Categoria
Equipe:
ID --> Pais, Mod_Cat, Numero
ParticipaEquipe:
Atleta -->> Equipe
Equipe -->> Atleta
ComplexoDesportivo:
Nome --> Endereco, Capacidade
Suporte:
ComplexDesport -->> Esporte
Competio:
ID --> Fase, Mod_Cat, Numero, Dia, Horario, Obs, ComplexDesport
Fase, Mod_Cat, Numero --> ID, Dia, Horario, Obs, ComplexDesport
ProximaCompeticao:
Anterior, Proxima --> IntColocacao
CompeteEquipe:
Equipe, Competicao --> Pontuacao
Competicao, Pontuacao --> Colocacao
Arbitra:
Arbitro, Competicao --> Papel

3. Normalizao

a. 1 forma normal
Todas as relaes j esto na 1 forma normal, pois todos os seus atributos so
atmicos e monovalorados.
b. 2 forma normal
Todas as relaes j esto na 2 forma normal, pois todos os seus atributos no
primrios possuem dependncia total, transitiva ou no, da chave primria.
c. 3 forma normal
A relao CompeteEquipe no est na 3 forma normal, pois o atributo Colocacao
possui dependncia transitiva da chave primria. Para passar a relao para a 3 forma
normal, quebramos ela em outras duas:
CompeteEquipe (Equipe, Competicao, Pontuacao)
Atributo Equipe referencia a tabela Equipe
Atributo Competicao referencia a tabela Competicao
Atributo Competicao, Pontuacao referenciam a tabela Resultado

Resultado (Competicao, Pontuacao, Colocacao*)


As demais relaes j se encontram na 3 forma normal, pois todos os seus atributos
possuem dependncia total, no transitiva, da chave primria.
d. Forma normal de Boyce-Codd (BCNF)
Todas as relaes j se encontram na BCNF, pois:
- Todos os seus atributos no primrios possuem dependncia total, no transitiva,
tanto da chave primria, quanto da secundria (quando presente).
- Para toda dependncia funcional no trivial X --> A vlida para uma relao, X uma
superchave de tal relao.
e. 4 forma normal
Todas as relaes j se encontram na 4 forma normal, pois todas as dependncias
multivaloradas so triviais.
f. Forma normal do esquema
A nica adaptao necessria para que o esquema atingisse a 4 forma normal foi a
quebra da relao CompeteEquipe. Para isso, entretanto, fomos obrigados a retirar a
permisso de que Pontuacao pudesse ser nulo, uma vez que uma parte da chave
primria se tornou parte da chave estrangeira. Isso se torna um problema semntico,
pois a competio na qual a equipe participa pode ainda no ter acontecido, portanto
no havendo resultados. Alm disso, a garantia de consistncia dada pela 3 forma
normal perde um pouco de seu valor se lembrarmos que Colocacao originalmente um
atributo derivado, sendo inserido provavelmente pelo prprio sistema e no por um
usurio. Dessa maneira, escolhemos usar o esquema na 2 forma normal. Vale ressaltar
entretanto, que com exceo de CompeteEquipe, todas as outras relaes esto na 4
forma normal.