Buscar

Semana 05 - Aula 07

Prévia do material em texto

Manter informação: 
 Inserção
 Remoção
 Atualização
 Consulta
CRUD:
RFxx: O sistema deve permitir que um jogador assuma vários papéis. O papel pode ser assumido por vários jogadores
RFxx: O sistema deve permitir que um jogador possa jogar vários jogos. O jogo pode ter vários jogadores
Jogo(cod, nome, dataI, dataF)
Papel (cod, nome, descrição)
Jogador (cod, nome, login, senha)
PapelJogador (codPapel, codJogador)*sublinhado triplo
JogoJogador (codJogo, codJogador)*sublinhado triplo
Nesse caso a relação é ternária, tem que ligar o Jogador com o Jogo e com o papel
PapelJogador (codPapel, codJogador)*sublinhado triplo
JogoJogador (codJogo, codJogador)*sublinhado triplo
PapelJogadorJogo (codJogo, codJogador, codPapel)*sublinhado triplo
Supondo o seguinte cenário:
Semana 05 - Aula 07
terça-feira, 2 de setembro de 2014 19:07
 Página 1 de COM230 - Banco de Dados I 
Supondo o seguinte cenário:
Observa-se ainda que a maioria das informações que estão sendo modeladas encontram-se na entidade genérica, 
porém fato da especiação ser dijunta e um indicativo de não se implementar uma tabela só. Já que ela é compartilhada, 
pode ocorrer da entidade assumir os dois papeis.
Talvez a estratégia mais viável seja a generelização/especialização implementando uma tabela para cada entidade. O 
cenário tem que ser estudado com cuidado na prática, já que dependendo da forma e frequência de acesso a essas 
informações pode gerar um gargalo e custo computacional.
PersonagemJogo(codP, codJogo)*sublinhado triplo
Personagem(cod, nome, descricao, dataC,codAutor)*sublinhado duplo
Autor(cod, nome)
cod referencia Personagem(cod)
Preal(cod...)*Chave primeira e estrangeira - sublinhado triplo
Supondo que exista um prêmio para o Jogador de acordo com seu desempenho:
No caso é preciso que a relação ternária entre as três entidades seja convertida numa entidade associativa vinculada à 
entidade Prêmio:
 Página 2 de COM230 - Banco de Dados I 
Premio (cod, nome, valor)
Para cardinalidade n para n:
codJogo, codJogador, codPapel 
referencia 
PapelJogadorJogo(codJogo,codJogador,cod
Papel)
codPremio referencia Premio(cod)
PremioJogo (codJogo,codJogador,codP,codPremio)
Outro cenário:
Departamento(sigla,cod,nome)
Empregado(mat,nome)
mat referencia Empregado(mat)
Sigla,cod referencia Departamento(sigla,cod)
Alocação(mat,sigla,cod)*triplo sublinhado
Departamento
Sigla Codigo
DF0 01
DMC 02
DMC 01
Empregado
E1
E2
E3
Alocação
E1, DF0, 01
E1, DMC, 02
E1, DMC, 01
E1, DMC, 01
 Página 3 de COM230 - Banco de Dados I 
Supondo que se queira registrar a alocação do funcionário em períodos anteriores:
Departamento(sigla,cod,nome)
Empregado(mat,nome)
mat referencia Empregado(mat)
Sigla,cod referencia Departamento(sigla,cod)
Alocação
E1, DF0, 01, 01/01/2014
E1, DMC, 02, 01/01/2014
E1, DMC, 01, 01/01/2014
E1, DMC, 01, 02/01/2014
Alocação(mat,sigla,cod, data)*triplo sublinhado
Supondo que a entidade Empregado possuísse um atributo multivalorado e composto "salário", com os atributos "valor" 
e "data":
Departamento(sigla,cod,nome)
Empregado(mat,nome)
Salario(mat,valor,data)
mat referencia Empregado(mat)
Sigla,cod referencia Departamento(sigla,cod)
Alocação(mat,sigla,cod, data)*triplo sublinhado
Considerando o seguinte cenário
Maquina (cod,desc,codDept,codF)*sublinhado duplo
Departamento (sigla, nome, codF)*sublinhado duplo
 Página 4 de COM230 - Banco de Dados I 
Departamento (sigla, nome, codF)*sublinhado duplo
Fabrica(cod, nome)
Em termos de modelagem conceitual, existe informação redundante. Toda vez que se cria um relacionamento, isto 
representa um custo de processamento maior para o SGBD. 
No entanto, se estivermos no cenário em que se toda vez que se acesse a máquina também tenha que acessar por 
algum motivo as condições da fábrica, remover o relacionamento entre fábrica é máquina pode aumentar o custo de 
processamento, uma vez que a consulta dependeria de acessar o departamento todas as vezes. Neste último caso, a 
redundância poderia ser válida. Portanto, os relacionamentos têm que se tomados levando em consideração as decisões 
de projeto.
Todas as decisões do projeto conceitual dependem das regras de negócio, e é muito importante analisar o impacto da 
modelagem na performance da aplicação e a qualidade semântica do dado em que está se modelando.
 Página 5 de COM230 - Banco de Dados I

Continue navegando