• Nenhum resultado encontrado

[Modelos de dados] Resumo do documento:

N/A
N/A
Protected

Academic year: 2021

Share "[Modelos de dados] Resumo do documento:"

Copied!
16
0
0

Texto

(1)

[Modelos de dados]

Resumo do documento:

Este documento tem como objectivo especificar as alterações feitas as tabelas da antiga base de dados e apresentar o novo modelo entidade relacionamento e o modelo físico com as alterações efectuadas.

Palavras-Chave: ER, alterações

Histórico de versões:

Versão Data Realizado por

V1.0 Jennifer Santos

V1.1 V1.2

(2)

Departamento de Engenharia Informática Estágio

[Modelos de dados] MagicBrain

Índice

2 Modelo ER ... 3

2.1 Alterações feitas as tabelam ... 4

2.1.1 Tabela associados ... 4 2.1.2 Tabela Ficheiro ... 4 2.1.3 Tabela Morada ... 4 2.1.4 Tabela Obs ... 4 2.1.5 Tabelas Prorrogações ... 5 2.1.6 Tabelas Dados_Prof ... 5 2.1.7 Tabela competência ... 5 2.1.8 Tabela list_dec ... 5 2.1.9 Tabela declarações: ... 5 2.1.10 Tabela Estágio ... 6 2.1.11 Tabela Patrono ... 6 2.1.12 Tabela List_patrono ... 8 2.1.13 Tabela pedido_patrono ... 8 2.1.14 Tabela Entidade ... 10 2.1.15 Tabela Etica ... 12 2.1.16 Tabela planear_formacoes ... 12 2.1.17 Tabela insc_dados ... 13 2.1.18 Tabela insc_curso ... 13 2.1.19 Tabelas de Alunos_externos ... 16

(3)
(4)

2.1 Alterações feitas as tabelam

2.1.1 Tabela associados

Tabela responsável por manter toda a informação dos membros da ANET, tanto para membro definitivo ou provisórios.

Alterações feitas:

As tabelas ant_provisorios e ant_associados, foram feitas um join, uma vez que esses apresentavam as mesmas informações com poucos atributos diferentes, por esse motivo foi feito a junção das duas tabelas.

Informações relevantes:

- Os números que começam que começam por ‘60’ são os provisórios e os que começam por ‘1’ são os definitivos.

Tabela Estágio

- Quando o atributo “codigo” e “num_def” forem iguais esses membros passam a ser definitivos, onde o atributo estado passa a aceite.

2.1.2 Tabela Ficheiro

Tabela responsável para guardar todos os caminhos dos ficheiros que estão associados a um dado membro.

Informações relevantes:

- Quando é feito o upload de um ficheiro, este é movido para o servidor hélios. - Está tabela foi uma nova tabela criada, não existia essa tabela antigamente.

2.1.3 Tabela Morada

Tem-se uma tabela aparte com a informação das moradas uma vez que um membro pode ter várias moradas associadas.

2.1.4 Tabela Obs

Tabela responsável para guardar as observações adicionadas a cada processo de estágio. Esta tabela manteve-se com os mesmos atributos e estrutura da antiga BD.

(5)

2.1.5 Tabelas Prorrogações

É a responsável para guardas as informações necessárias para as prorrogações feitas a um determinado estágio ou entrega de documentos.

Esta tabela manteve-se a mesma estrutura da antiga.

Informações relevantes:

O atributo estado tem os seguintes valores (negado=3, confimada='2' e pendentes='1').

2.1.6 Tabelas Dados_Prof

Tabela responsável por manter os dados profissionais dos membros. Um membro tem que ter um dado profissional obrigatoriamente.

2.1.7 Tabela competência

Tabela relacional entre os membros e as competências relcionamento_12 2.1.8 Tabela list_dec

Tabela responsável para guardar as informações relacionados com as competências do membro. Esta tabela esta relacionada directamente com os membros e com as declarações.

Informações relevantes:

- Uma declaração tem associado “x” competências. - Uma declaração tem associado x competências.

- Competências são as declarações que são passadas ao membro.

A tabela list_dec é equivalente a anet_competencia pois um declaração associada a um competência.

2.1.9 Tabela declarações:

Tabela responsável por guardar as informações necessárias para passar uma declaração.

(6)

Departamento de Engenharia Informática Estágio

[Modelos de dados] MagicBrain

- Pedir declarações só se o membro tiver competências que encontram associados nessa declaração. Alterações efectuadas:

Nesta tabela o que foi criado um novo atributo “n_dec”, que vais ser o número de pedidos de declarações, por exemplo se pedir 5 declarações, faz um registo na tabela e no atributo “n_dec” passa o valor das declarações no caso “5”. O que não acontecia na antiga BD fazia 5 registos para a mesma declaração.

2.1.10 Tabela Estágio

Tabela responsável por guardar toda a informação do estágio. Informações relevantes:

Foi mantido os mesmos atributos da antiga mas foi dividida em três, foram tiradas os dados da patrono e passado para uma tabela aparte chamada patrono com as informações necessárias para o patrono, outra tabela entidade com as informações necessárias para referentes a entidade de acolhimento e por fim tens a tabela estágio só com os valores da tabela estágio.

Os atributos da tabela estágios_concluidos da antiga BD foram passados para a tabela anet_estagios. O atributo “ant_etica” a informação guardada nesse atributo foi dividido para dois atributos (“num_turma” e “data_etica”), uma vez que esse guardava duas informações distintas no mesmo atributo. Sendo o num_turma o número da turma de ética e a data_etica a data que foi concluído a turma de ética.

2.1.11 Tabela Patrono

Tabela responsável por guardar as informações de um patrono. Informações relevantes:

Como já referido anteriormente essa tabela deriva-se dos atributos que se encontravam na tabela ant_estagios da antiga Base de dados.

Para tal foi necessário criar o seguinte procedimento:

PROCEDIMENTO PARA PASSAGEM DOS DADOS PARA TABELA PATRONO: 1º PASSO

(7)

2º PASSO DELIMITER $

CREATE PROCEDURE insertPatronos() BEGIN

DECLARE pat_nome TEXT; DECLARE pat_numero INTEGER; DECLARE pat_telemovel VARCHAR(20); DECLARE pat_telefone VARCHAR(20); DECLARE pat_mail TEXT;

DECLARE pat_inst TEXT; DECLARE pat_esp TEXT;

DECLARE pat_membro INTEGER;

DECLARE existe_mais_linhas INT DEFAULT 0;

DECLARE meuCursorDados CURSOR FOR SELECT n_membro,nome_pat,n_pat,telef_pat,telem_pat,mail_pat,inst_pat,esp_pat FROM ant_estagios;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET existe_mais_linhas=1; OPEN meuCursorDados;

meuLoop: LOOP

FETCH meuCursorDados INTO pat_membro,pat_nome,pat_numero,pat_telefone,pat_telemovel,pat_mail,pat_inst,pat_esp;

IF existe_mais_linhas = 1 THEN LEAVE meuLoop; END IF;

(8)

Departamento de Engenharia Informática Estágio

[Modelos de dados] MagicBrain

INSERT INTO anet_patrono(data_pedido,pat_nome,pat_numero,pat_telemovel,pat_telefone,pat_mail,pat_inst,n_

membro,pat_esp)

values('',pat_nome,pat_numero,pat_telemovel,pat_telefone,pat_mail,pat_inst,pat_membro,pat_esp) ;

END LOOP meuLoop; END$

3º PASSO

CALL insertPatronos();

2.1.12 Tabela List_patrono

Tabela responsável por guardar a lista dos pedidos de patrono.

2.1.13 Tabela pedido_patrono

Tabela relacional entre a tabela Patrono e List_patrono.

Para passar os id’s das tabelas patrono e da list_patrono foi necessário, cria o seguinte procedimento:

PROCEDIMENTO PARA PASSAGEM DOS DADOS PARA TABELA Pedido_Patrono: 1º PASSO

CREATE TABLE IF NOT EXISTS pedido_patrono( id int(11) not null auto_increment,

(9)

id_pat int(11) not null, id_lp int(11) not null, PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

2º PASSO

DROP PROCEDURE IF EXISTS insertPedidoPatrono;

3º PASSO DELIMITER $

CREATE PROCEDURE insertPedidoPatrono() BEGIN

DECLARE id_pat INTEGER; DECLARE id_lp INTEGER;

DECLARE existe_mais_linhas INT DEFAULT 0;

DECLARE meuCursorDados CURSOR FOR SELECT p.id ,l.id FROM lista_patronos l, anet_patrono p where l.n_membro = p.n_membro;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET existe_mais_linhas=1; OPEN meuCursorDados;

meuLoop: LOOP

(10)

Departamento de Engenharia Informática Estágio

[Modelos de dados] MagicBrain

IF existe_mais_linhas = 1 THEN LEAVE meuLoop; END IF;

INSERT INTO pedido_patrono(id_pat,id_lp) values(id_pat,id_lp);

END LOOP meuLoop; END$

4º PASSO

CALL insertPedidoPatrono();

2.1.14 Tabela Entidade

Tabela responsável por guardar as informações das entidades de acolhimento. Informação relevante:

Como referido anteriormente essa tabela deriva-se dos atributos que se encontravam na tabela da anet_estagios da antiga Base de Dados.

PROCEDIMENTO PARA PASSAGEM DOS DADOS PARA TABELA Pedido_Patrono: 1º PASSO

(11)

2º PASSO DELIMITER $

CREATE PROCEDURE insertEntidades() BEGIN

DECLARE id_ass INTEGER; DECLARE nome TEXT; DECLARE morada TEXT; DECLARE codg_postal TEXT; DECLARE telefone VARCHAR(20); DECLARE fax INTEGER;

DECLARE existe_mais_linhas INT DEFAULT 0;

DECLARE meuCursorDados CURSOR FOR SELECT n_membro, entidade, mor_ent, postal_ent, telef_ent, fax_ent FROM ant_estagios;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET existe_mais_linhas=1; OPEN meuCursorDados;

meuLoop: LOOP

FETCH meuCursorDados INTO id_ass, nome, morada, codg_postal, telefone, fax;

IF existe_mais_linhas = 1 THEN LEAVE meuLoop; END IF;

INSERT INTO anet_entidade(id_ass,nome,morada,codg_postal,telefone,fax,data_pedido) values(id_ass,

(12)

Departamento de Engenharia Informática Estágio

[Modelos de dados] MagicBrain

nome, morada, codg_postal, telefone, fax, '');

END LOOP meuLoop; END$

3º PASSO

CALL insertEntidades();

2.1.15 Tabela Etica

Tabela que vai guardar a informação das turmas de ética.

Esta tabela guarda a informações necessárias das turmas. Esta relacionado com o estágio em que um membro esta associado a um e só uma turma.

Condições para inserir na tua tabela.(dps tirar)

Inserir alunos num turma isso dependerá se for membro da ANT (é só actualizar o atributo (data_etica/turma da tabela estágio)), no caso de ser aluno externo passas os dados desse aluno.

2.1.16 Tabela planear_formacoes

Tabela responsável por guardar toda a informação dos cursos/formações a serem lançadas ou que estão já lançadas pela formação.

Informações relevantes:

Essa tabela foi criada com o intuito de eliminar alguns atributos redundantes da tabela inscricoes_net da antiga Base de dados. Onde foi criada uma nova tabela anet_planear_formacoes, que ficará somente com as informações relacionados com uma formação. Esta tabela também substituirá a tabela cursos, de forma a não ter a mesma informação em várias tabelas. Foi acrescentado um novo atributo, estado que vai conter as seguintes valores:

(13)

• Pendente, são os cursos/formações que estão a espera de serem lançadas, ou seja esses são os cursos só são aprovados depois de ter um número razoável de inscritos e só assim é que é passado para aprovado.

• Aprovado, são os cursos/formações que já foram aprovados pela ANET.

2.1.17 Tabela insc_dados

Tabela informações relevantes para guardar informações relacionados com a inscrição uma vez podem inscrever, membros da associação e membros externos.

2.1.18 Tabela insc_curso

É a tabela relacional entre a tabela insc_dados e a tabela planear_formacoes. Nota:

Para efectuar a passagem dos dados entre as três tabelas foi efectuado um procedimento de forma a manter os dados. Abaixo será explicado os passos que devem ser seguidos no phpMyAdmin:

PROCEDIMENTO PARA PASSAGEM DOS DADOS: 1º PASSO:

DROP PROCEDURE IF EXISTS getDados;

2º PASSO:

DROP PROCEDURE IF EXISTS getCursos;

3º PASSO DELIMITER $

CREATE PROCEDURE getDados(IN last_id_curso INTEGER, IN nome_curso TEXT) BEGIN

DECLARE last_id_dados INTEGER;

(14)

Departamento de Engenharia Informática Estágio

[Modelos de dados] MagicBrain

DECLARE d_nome TEXT; DECLARE d_morada TEXT; DECLARE d_localidade TEXT; DECLARE d_telef INTEGER; DECLARE d_mail TEXT; DECLARE d_membro TEXT; DECLARE d_data DATE;

DECLARE meuCursorDados CURSOR FOR SELECT nome,morada,localidade,tlm,mail,membro,data FROM anet_inscricoes_net WHERE curso =

nome_curso;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET existe_mais_linhas=1; OPEN meuCursorDados;

meuLoop: LOOP

FETCH meuCursorDados INTO d_nome,d_morada,d_localidade,d_telef,d_mail,d_membro,d_data; IF existe_mais_linhas = 1 THEN LEAVE meuLoop; END IF; INSERT INTO anet_dados_insc(membro,nome,morada,localidade,telef,mail,data,observ) values(d_membro,d_nome,d_morada,d_localidade,d_telef,d_mail,d_data,'');

SELECT id into last_id_dados FROM anet_dados_insc ORDER by ID DESC LIMIT 1;

(15)

(last_id_dados,last_id_curso);

END LOOP meuLoop; END$

4º PASSO DELIMITER $

CREATE PROCEDURE getCursos() BEGIN

DECLARE last_id_curso INTEGER; DECLARE last_id_dados INTEGER;

DECLARE existe_mais_linhas INT DEFAULT 0; DECLARE nome_curso TEXT;

DECLARE meuCursor CURSOR FOR SELECT distinct(curso) FROM anet_inscricoes_net WHERE 1 group by curso;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET existe_mais_linhas=1; OPEN meuCursor;

meuLoop: LOOP

FETCH meuCursor INTO nome_curso;

IF existe_mais_linhas = 1 THEN LEAVE meuLoop;

(16)

Departamento de Engenharia Informática Estágio

[Modelos de dados] MagicBrain

END IF;

INSERT INTO anet_planear_formacao(curso,num_horas,custo,dias,estado) values(nome_curso,0,'0',0,'APROVADO');

SELECT id into last_id_curso FROM anet_planear_formacao ORDER by ID DESC LIMIT 1;

call getDados(last_id_curso,nome_curso);

END LOOP meuLoop; END$

5º PASSO

CALL getCursos();

2.1.19 Tabelas de turma_etica_ext

Referências

Documentos relacionados

Os alunos que concluam com aproveitamento este curso, ficam habilitados com o 9.º ano de escolaridade e certificação profissional, podem prosseguir estudos em cursos vocacionais

Este trabalho é resultado de uma pesquisa quantitativa sobre a audiência realizada em 1999 envolvendo professores e alunos do Núcleo de Pesquisa de Comunicação da Universidade

Para o ferro puro foi utilizado uma camada de entrada com 4 neurônios (um para cada classe de dados de entrada – temperatura, tempo, diâmetro inicial de grão e

Ainda na última parte da narrativa, outro “milagre” acontece: Grenouille apa- rece, de súbito, em meio ao povo, destampa uma pequena garrafa que trazia consi- go, borrifa-se com

Atualmente o predomínio dessas linguagens verbais e não verbais, ancorados nos gêneros, faz necessário introduzir o gênero capa de revista nas aulas de Língua Portuguesa, pois,

DADOS DE IDENTIFICAÇÃO DO CANDIDATO CRITÉRIOS DE AVALIAÇÃO DESEMPATE FAIXA II - PROFESSORES COM SEDE DE CLASSIFICAÇÃO OU SEDE DE CONTROLE DE FREQUÊNCIA DE OUTRA DIRETORIA DE ENSINO

no “ANEXO III”, ficha de inscrição padronizada, conforme modelo constante do “ANEXO IV”, e demais documentos exigidos para o cargo. No ato da entrega do currículo não

do Aluno, (disciplina por disciplina) proporcionalmente aos pagamentos efetuados das mensalidades do curso e poderão ser feitas diretamente pelo site/Portal do Aluno,