Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL – UNIJUÍ CIÊNCIA DA COMPUTAÇÃO DANIEL FREY GABRIEL CAVALHEIRO ULLMANN GEOVANI ALEX NIESWALD WILIAM FELBER MODELAGEM DA BASE DE DADOS DE UM SISTEMA PARA O CAMPEONATO DE FUTEBOL AMADOR MUNICIPAL DE SANTA ROSA AVALIAÇÃO PARCIAL II Santa Rosa – RS 2018 DANIEL FREY GABRIEL CAVALHEIRO ULLMANN GEOVANI ALEX NIESWALD WILIAM FELBER MODELAGEM DA BASE DE DADOS DE UM SISTEMA PARA O CAMPEONATO DE FUTEBOL AMADOR MUNICIPAL DE SANTA ROSA AVALIAÇÃO PARCIAL II Trabalho referente a avaliação parcial II apresentado à Universidade Regional do Noroeste do Estado do Rio Grande do Sul, como requisito parcial para obtenção da aprovação no componente Banco de Dados I no Curso de Ciência da Computação. Professor: Gerson Battisti Santa Rosa – RS 2018 SÚMARIO INTRODUÇÃO ............................................................................................................ 3 1 MODELO CONCEITUAL ......................................................................................... 4 2 MODELO LÓGICO .................................................................................................. 5 2.1 NORMALIZAÇÃO .............................................................................................. 5 2.1.1 Primeira Forma Normal ............................................................................. 6 2.1.2 Segunda Forma Normal ............................................................................ 6 2.1.3 Terceira Forma Normal ............................................................................. 6 2.2 COMPLEMENTOS E RESTRIÇÕES ................................................................. 6 2.2.1 Clube .......................................................................................................... 7 2.2.2 Estádio ....................................................................................................... 7 2.2.3 Contrato ..................................................................................................... 8 2.2.4 Profissional ................................................................................................ 8 2.2.5 Jogador ...................................................................................................... 9 2.2.6 Técnico ....................................................................................................... 9 2.2.7 Grupo ....................................................................................................... 10 2.2.8 Escalação ................................................................................................. 10 2.2.9 Partida ...................................................................................................... 11 2.2.10 Disputa ................................................................................................... 11 2.2.11 Tabela ..................................................................................................... 12 2.2.12 Acontecimento ...................................................................................... 13 2.2.13 Gol .......................................................................................................... 13 2.2.14 Substituição ........................................................................................... 14 2.2.15 Falta ........................................................................................................ 14 2.2.16 Cartão ..................................................................................................... 14 2.2.17 Outro ...................................................................................................... 15 CONCLUSÃO ........................................................................................................... 16 REFERÊNCIAS ......................................................................................................... 17 3 INTRODUÇÃO Nosso trabalho consiste em elaborar um modelo conceitual, um modelo lógico e explicitar as restrições para um projeto de banco de dados. Esse projeto referido apresenta o seguinte problema: “A Liga de Futebol de Santa Rosa deseja construir um sistema para o campeonato de futebol amador municipal de SR. Para tal, fechou parceria com a UNIJUÍ e a nossa turma para desenvolvermos a modelagem da base de dados”. Para descomplicar o trabalho, foi fornecido pelo professor um levantamento de requisitos, listando algumas informações relevantes. Além disso, os requisitos de informação solicitados pelos usuários também foram identificados. Esses requisitos consistem em informações que são essenciais ao desenvolvimento do trabalho, e, portanto, para a sua conclusão. Elas contêm dados que serão usadas pelo desenvolvedor para criar modelos conceituais, entidades e seus atributos, e relacionamentos entre as entidades. . 4 1 MODELO CONCEITUAL Modelo conceitual Fonte: Produzido pelos autores 5 2 MODELO LÓGICO Cadastros principais: Clube (ID, #ID_Estádio, Nome, Data_Fundação) Estádio (ID, Nome, Capacidade, Endereço {Logradouro, Número, Bairro}) Profissional (CPF, Nome, Data_Nascimento, Ativo) o Técnico (#CPF_Profissional) o Jogador (#CPF_Profissional, Idade, Altura, Posição, Peso) Contrato (#CPF_Profissional, #ID_Clube, Data_Início, Data_Fim, Ativo) Partida/campeonato: Grupo (ID, #ID_Clube, #CPF_Técnico) Escalação (#ID_Grupo, #CPF_Jogador, Número) Partida (ID, #ID_Estádio, #ID_Campeonato, Data, Público) Disputa (#ID_Grupo, #ID_Partida) Campeonato (ID, Ano, Nome) Tabela (#ID_Campeonato, #ID_Clube, Vitórias, Empates, Derrotas, Gols_Sofridos, Gols_Feitos, Pontos) Acontecimentos do jogo: Acontecimento (ID, #ID_Partida, #CPF_Causador, Tempo, Observação) o Gol (#ID_Acontecimento, #CPF_Goleiro) o Substituição (#ID_Acontecimento, #CPF_Jogador) o Falta (#ID_Acontecimento, Penalidade) o Cartão (#ID_Acontecimento, Tipo) o Outro (#ID_Acontecimento, Descrição) 2.1 NORMALIZAÇÃO Nesta seção realizaremos a normalização do modelo lógico, passando pelas três etapas principais e que são requisito mínimo para que se possa implantar fisicamente o Banco de Dados, essas etapas são: Primeira Forma Normal (1FN), Segunda Forma Normal (2FN) e Terceira Forma Normal (3FN). 6 2.1.1 Primeira Forma Normal Nesta etapa verificamos que a relação “Estádio” deve ser normalizada. Abaixo segue a relação já normalizada para 1FN: Estádio (ID, Nome, Capacidade, Logradouro, Número, Bairro) 2.1.2 Segunda Forma Normal Verificamos que nesta etapa todas as relações estão de acordo com o que pede a Segunda Forma Normal. 2.1.3 Terceira Forma Normal Nesta etapa verificamos que a relação “Jogador” deve ser normalizada. Abaixo segue a relação já normalizada para 3FN: Jogador (#CPF_Profissional, Altura, Posição, Peso) Também constamos que a relação “Tabela” poderia ser normalizada, pois seu atributo “Pontos” pode ser calculado com o número de vitórias, empates e valores de peso (ex: cada vitória 3 pontos, cada empate 1 ponto), porém decidimos manter este atributo pois entendemos que seja vantajoso em questões de buscas e organização. 2.2 COMPLEMENTOS E RESTRIÇÕES Nesta seção apresentaremos complementos para todas asrelações criadas no modelo lógico, esses complementos são formados por uma breve descrição e comentários sobre algumas regras de negócio e sobre escolhas feitas na criação de atributos e relacionamentos. Também apresentaremos (em forma de tabela) as restrições deste projeto, onde as restrições de integridade de chave e integridade referencial foram asseguradas, pois foram criadas chaves primárias para todas as relações, bem como chaves estrangeiras, quando necessário. Na tabela ainda estão representadas as restrições de tipo e vazio. 7 2.2.1 Clube Todo clube de futebol possui um nome, data de fundação e um estádio relacionado, que pode ser um campo de futebol qualquer com condições adequadas de jogo. Caso um clube não seja proprietário de um estádio ou campo, o estádio municipal será designado para ele. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID Primária Inteiro Sim ID_Estádio Estrangeira Inteiro Sim Nome Caractere (80) Sim Data_Fundação Data Sim 2.2.2 Estádio Local no qual podem-se realizar partidas de futebol. No atributo multivalorado “Endereço”, não foi incluído cidade, CEP ou estado, pois supõe-se que as partidas irão ocorrer somente em estádios localizados no município de Santa Rosa. Também após a normalização o atributo multivalorado passou a não existir, ficando apenas seus atributos “soltos” na relação, uma vez que um estádio tem apenas um endereço. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID Primária Inteiro Sim Nome Caractere (80) Sim Capacidade Inteiro Sim Logradouro Caractere (80) Sim Número Inteiro Sim Bairro Caractere (20) Sim 8 2.2.3 Contrato Relação entre clubes e profissionais. O atributo “Ativo” representa o status do contrato, ou seja, se o profissional está autorizado e apto a atuar pelo clube que o contratou. Este contrato pode tornar-se inativo caso seja rompido, ou deixe de ser válido por algum motivo (ex: irregularidade trabalhista, prazo do contrato expirou). A escolha de “Data_Início”, “Data_Fim” e “CPF_Profissional” como chave composta, veio na ideia de que um jogador pode ter apenas um contrato com um clube em um período de tempo. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? CPF_Profissional Primária, Estrangeira Inteiro Sim ID_Clube Estrangeira Inteiro Sim Data_Início Primária Data Sim Data_Fim Primária Data Sim Ativo Booleano Sim 2.2.4 Profissional Jogador ou técnico que em algum momento atuou, ou irá atuar, por um clube. O atributo “Ativo” representa o status de atividade do profissional. Este atributo será marcado como inativo quando este profissional não estiver exercendo sua função, de forma temporária ou definitiva (ex: aposentadoria). Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? CPF Primária Inteiro Sim Nome Caractere (80) Sim Data_Nascimento Data Sim Ativo Booleano Sim 9 2.2.5 Jogador Jogador de um clube de futebol. Além das informações relacionadas a todo o profissional, para um jogador devem ser cadastrados peso, altura e posição. O atributo “Idade” pode ser calculado a partir da data de nascimento informada, em relação a data corrente, por isso após aplicada a normalização esse atributo foi removido. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? CPF_Profissional Primária, Estrangeira Inteiro Sim Altura Inteiro Não Posição Caractere (3) Sim Peso Inteiro Não 2.2.6 Técnico Treinador de um clube de futebol. O técnico não possui atributos específicos, além dos já pertencentes à relação Profissional. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? CPF_Profissional Primária, Estrangeira Inteiro Sim 10 2.2.7 Grupo Um grupo de jogadores pertence a um clube e é treinado por um técnico. Os jogadores que o compõem são descritos na escalação. Em geral, um grupo permanecerá o mesmo ao longo de uma temporada ou enquanto permanecer o mesmo técnico. Porém, este grupo irá se apresentar de forma diferente ao longo das partidas, o que é descrito na relação “Escalação”. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID Primária Inteiro Sim ID_Clube Estrangeira Inteiro Sim CPF_Técnico Estrangeira Inteiro Sim 2.2.8 Escalação A cada partida, os times irão fazer suas escalações, nas quais irão constar os profissionais aptos para disputar a partida, seja em campo ou no banco de reservas. Em uma dada escalação, podem ou não constar os jogadores de escalações anteriores. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID_Grupo Primária, Estrangeira Inteiro Sim CPF_Jogador Primária, Estrangeira Inteiro Sim Número Inteiro Sim 11 2.2.9 Partida Toda partida pertence a um campeonato, o que permite o controle da pontuação e desempenho de cada clube no mesmo. Caso ocorra uma partida amistosa, deverá ser cadastrado um campeonato chamado “Amistoso” no sistema para que então o cadastro da partida possa ocorrer. Essa decisão foi tomada considerando que partidas amistosas não são tão frequentes, logo esse fato não acarretaria em um excesso de registros nesta tabela do banco de dados. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID Primária Inteiro Sim ID_Estádio Estrangeira Inteiro Sim ID_Campeonato Estrangeira Inteiro Sim Data Data Sim Público Inteiro Sim 2.2.10 Disputa Em uma disputa, estão relacionados os grupos que disputarão uma partida. Considerando as regras do futebol, deve haver exatamente 2 grupos por partida. Não sendo possível controlar isso via restrições do banco de dados, é tarefa da aplicação fazer com que este requerimento seja cumprido. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID_Grupo Primária, Estrangeira Inteiro Sim ID_Partida Primária, Estrangeira Inteiro Sim 12 2.2.11 Tabela Na tabela do campeonato, serão armazenadas as informações relativas ao desempenho dos clubes nas partidas pertencentes ao mesmo. Através de consulta aos acontecimentos da partida, a aplicação irá calcular e então armazenar nesta tabela o número de vitórias, empates e derrotas; número de gols sofridos e feitos, bem como a pontuação do campeonato, conforme o sistema de pontos corridos (round- robin tournament, em inglês) adotado por várias ligas de futebol ao redor do mundo. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID_Campeonato Primária, Estrangeira Inteiro Sim ID_Clube Primária, Estrangeira Inteiro Sim Vitórias Inteiro Sim Empates Inteiro Sim Derrotas Inteiro Sim Pontos Inteiro Sim Gols_Feitos Inteiro Sim Gols_Sofridos Inteiro Sim 13 2.2.12 Acontecimento Um acontecimento é qualquer evento relevante dentro das regras do futebol que poderá ocorrer na partida. São estes divididos em 5 categorias: gols, faltas, substituições, cartões ou outros. Na relação Acontecimento existe chave estrangeira com Jogador, de forma a relacionar ao ocorrido também o seu causador (ex: jogador que marcou o gol, ou cometeu a falta). É registrado junto ao acontecimento o tempo de jogo no qual ele ocorreu e uma breve observação, a ser informada pela arbitragem. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID Primária Inteiro Sim ID_PartidaEstrangeira Inteiro Sim CPF_Causador Estrangeira Inteiro Sim Tempo Real Não Observação Caractere (300) Não 2.2.13 Gol Na relação Gol existe chave estrangeira com Jogador, de forma a relacionar ao ocorrido o goleiro que sofreu o gol. Conforme requisitos do projeto, através das informações aqui armazenadas será possível saber qual foi a quantidade de gols de um jogador por partida, qual foi o artilheiro e melhor goleiro do campeonato. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID_Acontecimento Primária, Estrangeira Inteiro Sim CPF_Goleiro Estrangeira Inteiro Sim 14 2.2.14 Substituição Na relação Substituição existe uma chave estrangeira com Jogador, isto para que seja possível saber qual o jogador entrou na partida, uma vez que o jogador que saiu está relacionado ao acontecimento. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID_Acontecimento Primária, Estrangeira Inteiro Sim CPF_Jogador Estrangeira Inteiro Sim 2.2.15 Falta Uma falta pode ou não resultar em penalidade máxima (pênalti), conforme as regras do futebol. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID_Acontecimento Primária, Estrangeira Inteiro Sim Penalidade Booleano Sim 2.2.16 Cartão Um cartão pode ser do tipo amarelo ou vermelho. Um jogador pode receber 2 cartões amarelos durante uma partida, o que resultará em sua expulsão, conforme as regras do futebol. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID_Acontecimento Primária, Estrangeira Inteiro Sim Tipo Caractere (1) Sim 15 2.2.17 Outro Este tipo de acontecimento foi criado pensando na ocorrência de situações extraordinárias que podem influenciar na partida e precisam ser registradas de alguma maneira. Alguns exemplos são: queda de energia durante uma partida noturna ou condição de clima severo (ex: tempestade, neblina, calor extremo) que leve a partida a ser interrompida temporariamente. Abaixo a tabela de restrições: Atributo Chave Tipo Obrigatório? ID_Acontecimento Primária, Estrangeira Inteiro Sim Descrição Caractere (300) Sim 16 CONCLUSÃO Neste trabalho abordamos o assunto modelagem da base de dados de um sistema para o campeonato de futebol amador municipal de Santa Rosa e concluímos que alcançamos o que nos foi proposto, entretanto, certamente um levantamento de requisitos maior, e uma comunicação com o cliente, resultaria em uma modelagem melhor e mais profissional. Essa constatação sobre os requisitos e a comunicação com o cliente, reforça mais ainda o que estamos vendo durante todo o curso em diversas disciplinas, que é a suma importância das fases de analise, levantamento de requisitos e etc. Na realização do trabalho a discussão entre os colegas de grupo, sobre maneiras de resolver os problemas encontrados durante a elaboração tanto do modelo conceitual quanto do lógico agregou muito para o seguimento do desenvolvimento do trabalho, pois conseguimos determinar uma estratégia para a realização do projeto, além de agregar muito também no quesito pessoal e de realização de trabalhos em grupo. Portanto este trabalho foi de grande importância para a nossa compreensão da modelagem, uma vez que nos ajudou a compreender melhor a teoria estudada em aula, por meio da pratica realizada aqui. Além de ter-nos permitido desenvolver competências de investigação, seleção, organização e comunicação da informação. . 17 REFERÊNCIAS DINITZ, Jeffrey. Designing Schedules for Leagues and Tournaments. Disponível em: <http://www.emba.uvm.edu/~jdinitz/preprints/design_tourney_talk.pdf>. Último acesso: 31/10/2018.
Compartilhar