Baixe o app para aproveitar ainda mais
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
Compartilhar