Escolar Documentos
Profissional Documentos
Cultura Documentos
Trabalho Final
Discentes:
Docentes:
Alexandre Leopoldo Gonçalves
2
1. Descrição geral do sistema:
O desenvolvimento desse sistema proposto para o trabalho final relativo à
disciplina Banco de Dados I tem como finalidade facilitar clubes e organizações de
pequeno/médio porte que realizam competições, lançarem e organizar os dados
referente às mesmas.
3
● O sistema deve permitir que clubes de natação possam se
cadastrar/filiar a diferentes organizações, apresentando, nome, CNPJ,
logo, cidade, estado, país e email.
● O sistema deve permitir que dentro do acesso de clubes, possam ser
cadastrados os treinadores, apresentando nome, CREF,
nacionalidade, telefone, foto e email.
● O sistema deve permitir que os treinadores cadastrados em um clube
possam registrar seus atletas, apresentando nome, data de
nascimento, foto, telefone, CPF e nacionalidade.
● O sistema deve disponibilizar para cada atleta o histórico de provas e
competições que já participou e os respectivos tempos realizados de
cada prova.
● A organização, quando cadastra uma competição deve informar o
nome, a data de início e fim para as inscrições, endereço, cidade,
estado, país, tipo de piscina, taxa de inscrição, taxa de não
comparecimento do atleta.
● A organização, quando cadastra as provas dentro das competições,
deve informar o tipo da prova, a classe, o status, a quantidade de
atletas permitidas e a quantidade de séries.
● O sistema deve permitir que os árbitros responsáveis por um atleta,
em uma prova de uma competição, possam registar os tempos
coletados ou desclassificar os atletas.
3. Modelagem Conceitual:
4
4. Modelo Lógico:
5. Script DDL:
CREATE DATABASE IF NOT EXISTS sgcn_db;
USE sgcn_db;
ID_ORGANIZACAO INT,
nome VARCHAR(100),
data_inicio DATE,
data_fim DATE,
endereco VARCHAR(100),
tipo_piscina VARCHAR(11),
taxa_inscricao DECIMAL(9,2),
5
taxa_noShow DECIMAL(9,2)
);
ID_CLUBE INT,
ID_ORGANIZACAO INT,
PRIMARY KEY(ID_CLUBE,ID_ORGANIZACAO)
);
taxa_filiacao DECIMAL(9,2)
);
CNPJ VARCHAR(14),
email VARCHAR(100),
logo BLOB,
telefone VARCHAR(14),
pais VARCHAR(100),
cidade VARCHAR(100),
estado VARCHAR(100),
nome VARCHAR(100)
);
nome VARCHAR(100),
6
CREF VARCHAR(14),
foto BLOB,
nacionalidade VARCHAR(100),
telefone VARCHAR(14),
email VARCHAR(100)
);
CPF VARCHAR(11),
data_nascimento DATE,
foto BLOB,
nacionalidade VARCHAR(100),
nome VARCHAR(100),
telefone VARCHAR(14)
);
ID_ATLETA INT,
ID_COMPETICAO INT,
serie INT,
raia INT,
);
ID_Prova INT,
7
ID_COMPETICAO INT,
status_prova VARCHAR(100),
PRIMARY KEY(ID_Prova,ID_COMPETICAO),
);
ID_INSCRICAO INT,
ID_Prova INT,
data DATE,
PRIMARY KEY(ID_INSCRICAO,ID_Prova),
);
Nome_Prova VARCHAR(100)
);
ID_COMPETICAO INT,
ID_PATROCINADOR INT,
PRIMARY KEY(ID_COMPETICAO,ID_PATROCINADOR),
);
nome VARCHAR(100),
8
logo BLOB,
valor_patrocinio DECIMAL(9,2)
);
ID_ARBITRO INT,
ID_COMPETICAO INT,
);
tempo VARCHAR(8),
ID_Prova INT,
ID_REGISTRO INT,
PRIMARY KEY(ID_Prova,ID_REGISTRO),
);
ID_ORGANIZACAO INT,
nome VARCHAR(100),
email VARCHAR(100),
telefone VARCHAR(14),
cpf VARCHAR(11),
9
);
ID_CLUBE INT,
ID_TREINADOR INT,
ID_ATLETA INT,
DATA_CADASTRO DATE,
);
6. Consultas:
6.1. Listar a quantidade de atletas inscritos por evento em eventos futuros:
10
INNER JOIN inscricao_resultado AS ins ON atl.ID_ATLETA =
ins.ID_ATLETA
GROUP BY evt.nome;
11
LIMIT 10;
6.3. Listar o valor total arrecadado por cada organização pelo total de
eventos passados que ela possua:
12
13