Introdução

Depois de verificarmos que alguns infantários usavam o SAP, como software para a gestão dos mesmos, decidimos investir nesse nicho, com um programa para gestão exclusiva de infantários. Para este efeito utilizamos a ferramenta Designer do Oracle.

Assim, tendo em conta que os clientes são os encarregados de educação das crianças e que os funcionários são desde directores a educadores, foram analisadas as várias características destes agentes e situações envolventes. São elas:

·        Colaboradores:

o       São os funcionários do infantário (director, educador, cozinheiro, professor de música, ...),

o       no caso dos educadores, dados sobre o diploma são relevantes, e quais as crianças pelas quais está responsável.

·        Crianças:

o       São necessários os dados pessoais e

o       os dados do encarregado de educação.

·        Actividades:

o       Actividades extras que podem existir no infantário, tais como natação, música e línguas.

·        Inscrições:

o       No infantário e

o       nas actividades.

·        Ocorrências:

o       Registo de ocorrências importantes relacionadas com cada criança.

 


Descrição Funcional

Partição funcional

Unidades orgânicas e sub-sistemas

O sistema é composto por cinco unidades orgânicas. Nomeadamente o encarregado de educação, secretaria, administração, colaboradores e educadores do infantário. O encarregado de educação é o cliente do infantário. Procura o serviço oferecido pelo infantário. A secretaria é a unidade do infantário que se encarrega de tratar das inscrições de crianças no infantário, inscrições de actividades e os pagamentos correspondentes aos mesmos. A administração encarrega-se de gerir o infantário com funções como a criação de turmas e de admissão de novos colaboradores (incluindo educadores), criar novas actividades. Os educadores têm como função educar as crianças. Outros colaboradores, alem da administração e educadores, por exemplo cozinheiros e pessoal de limpeza, participam no bem funcionamento do infantário.

Principais funções do sistema

As principais funções do sistema são as seguintes: inscrições no infantário, inscrições em actividades, adicionamento de novas actividades, registo de pagamentos do encarregados de educação, registo de ocorrências (por exemplo mau comportamento de uma criança ou ferimentos adquiridos em algum situação), criação de novas turmas, e admissão de novo pessoal.  Os diagramas que se seguem ilustram os vários passos envolvidos em cada processo.

 

Processo de inscrição no infantário

O processo envolve o encarregado de educação e a secretaria do infantário. O encarregado expressa mediante a funcionaria de secretaria a necessidade de inscrever a criança no infantário. Transmite-lhe a idade da criança para que a funcionaria possa consular a base de dados das turmas verificando se existe vagas em turmas com a mesma idade. Se houver vagas o encarregado apresente o seu recibo de IRS e juntamente com a tabela de rendimentos em vigor, a funcionaria  pode calcular o preço de inscrição consoante o rendimento do encarregado. Se não for uma re inscrição, ou seja não houver nenhum registo da criança e/ou do encarregado no infantário é feito um registo do mesmo. De seguida e registada a inscrição da criança e é imprimido um comprovativo de inscrição que é entregue ao encarregado.

Processo de inscrição de actividade

            Envolve novamente o encarregado e a secretaria. O encarregado transmite à funcionaria as actividades que pretende inscrever a criança. É consultado uma tabela de preços das varias actividades e feito um registo da inscrição. Novamente é imprimido comprovativo de inscrição para entregar ao encarregado de educação.

Processo de adicionar uma nova actividade

            A administração insere os dados (descrição, local de funcionamento) na base de dados.

Processo de registo de pagamento

            Envolve a secretaria e o encarregado. O encarregado indica o nome da criança para qual quer efectuar o pagamento. A secretaria consulta as actividades em que a criança está inscrita e calcula a mensalidade a pagar. É feito um registo do pagamento e é imprimido um recibo.

Processo de registo de uma ocorrência

            Um ocorrência é registado por qualquer colaborador do infantário. Ao haver um incidente é identificada a criança envolvida e feito um registo da ocorrência na base de dados. Um aviso é imprimido para notificar o encarregado de educação.

Processo de criação de nova turma

            A criação de turmas é efectuado no inicio de cada ano lectivo envolvendo a administração e os educadores. O educadores indicam a sua preferência nas turmas que gostavam de educar e com base nessa informação a administração cria as várias turmas e faz um registo na base de dados.

Processo de admissão de novo colaborador no infantário

            A administração faz um registo de novos colaboradores referente aos seus dados pessoais e se for um educador regista também o ano e local que obteve o seu diploma.


Diagrama de hierarquia de funções

Inscrição no infantário

Inscrição em actividades

Nova actividade

Pagamentos

Registo de ocorrência

Criação de turma

Novo colaborador


Descrição da Informação

            O Diagrama Entidade/Relação do Designer construído foi o seguinte:

 

            Como a maior parte dos atributos são de fácil interpretação, vamos apenas destacar o conteúdo geral de cada entidade.

·        Colaborador: A sua função pode ser desde o director, ao cozinheiro;

·        Educador: No caso do funcionário ser um educador, é relevante informação sobre o ano e o local onde terminou o curso;

·        Criança: Dados pessoais das crianças inscritas no infantário;

·        Encarregado: Encarregado de educação responsável pela criança;

·        Turma: Turma na qual a criança está inserida;

·        Ocorrência: Alguma ocorrência especial que tenha acontecido com a criança, e que tenha sido registada por algum funcionário;

·        Actividade: Actividades extras do infantário (futebol, música, natação, etc.);

·        Inscrição: Registo das inscrições;

·        Recibo: Registo dos pagamentos efectuados, relativos a cada criança.

 

Relevamos as seguintes restrições de integridade:

·        Apenas um educador fica responsável por uma turma;

·        Uma criança apenas pode pertencer a uma turma;

·        Um encarregado pode ter mais de que uma criança pela qual é responsável (no caso de ter vários filhos inscritos);

 


Esquema Relacional

 

* A matriz CRUD e o script de geração da base de dados encontra-se no apêndice.

 

 


Conclusões

À parte de ser muito útil para especificar o que será feito na fase de desenvolvimento, a utilização da ferramenta CASE do Designer envolveu um grande desperdício de tempo.


Bibliografia


Apêndices

Matriz CRUD


Script de geração da base de dados

Script Tabelas

PROMPT Creating Table 'RECIBOS'

CREATE TABLE RECIBOS

 (DATA DATE NOT NULL

 ,VALOR INTEGER NOT NULL

 ,CODIGO INTEGER NOT NULL

 ,INS_CODIGO INTEGER NOT NULL

 )

/

 

PROMPT Creating Table 'CRIANCAS'

CREATE TABLE CRIANCAS

 (DATA_ENTRADA DATE NOT NULL

 ,CODIGO INTEGER NOT NULL

 ,NOME VARCHAR2(240) NOT NULL

 ,DATA_NASCIMENTO DATE NOT NULL

 ,NECESSIDADE VARCHAR2(240) NOT NULL

 ,SEXO VARCHAR2(240) NOT NULL

 ,FOTOGRAFIA LONG RAW NOT NULL

 ,MORADA VARCHAR2(240) NOT NULL

 ,NUM_CEDULA INTEGER NOT NULL

 ,TUR_CODIGO INTEGER NOT NULL

 ,ENC_CODIGO INTEGER NOT NULL

 )

/

 

PROMPT Creating Table 'OCORRENCIAS'

CREATE TABLE OCORRENCIAS

 (DATA DATE NOT NULL

 ,DESCRICAO VARCHAR2(240) NOT NULL

 ,HORA DATE NOT NULL

 ,CODIGO INTEGER NOT NULL

 ,CRI_CODIGO INTEGER NOT NULL

 ,COL_CODIGO INTEGER NOT NULL

 )

/

 

PROMPT Creating Table 'COLABORADORES'

CREATE TABLE COLABORADORES

 (LOCAL VARCHAR2(240)

 ,ANO INTEGER

 ,CODIGO INTEGER NOT NULL

 ,FUN__O VARCHAR2(240) NOT NULL

 ,FOTOGRAFIA LONG RAW NOT NULL

 ,NOME VARCHAR2(240) NOT NULL

 )

/

 

PROMPT Creating Table 'ACTIVIDADES'

CREATE TABLE ACTIVIDADES

 (DESCRICAO VARCHAR2(240) NOT NULL

 ,LOCAL_FUNCIONAMENTO VARCHAR2(240) NOT NULL

 ,CODIGO INTEGER NOT NULL

 )

/

 

PROMPT Creating Table 'ENCARREGADOS'

CREATE TABLE ENCARREGADOS

 (MORADA LONG NOT NULL

 ,PARENTESCO VARCHAR2(240) NOT NULL

 ,LOCAL_DE_TRABALHO VARCHAR2(240) NOT NULL

 ,NO__CONTRIBUINTE INTEGER NOT NULL

 ,CODIGO INTEGER NOT NULL

 ,NOME VARCHAR2(240) NOT NULL

 ,TELEFONE_CASA INTEGER NOT NULL

 ,TELEFONE_TRABALHO INTEGER NOT NULL

 )

/

 

PROMPT Creating Table 'TURMAS'

CREATE TABLE TURMAS

 (IDADE_MAX INTEGER NOT NULL

 ,NOME VARCHAR2(240) NOT NULL

 ,CAPACIDADE INTEGER NOT NULL

 ,IDADE_MIN INTEGER NOT NULL

 ,ANO INTEGER NOT NULL

 ,CODIGO INTEGER NOT NULL

 ,COL_CODIGO INTEGER NOT NULL

 )

/

 

PROMPT Creating Table 'INSCRICOES'

CREATE TABLE INSCRICOES

 (PRECO INTEGER NOT NULL

 ,CODIGO INTEGER NOT NULL

 ,DATA DATE NOT NULL

 ,ACT_CODIGO INTEGER NOT NULL

 ,CRI_CODIGO INTEGER NOT NULL

 )

/

 

 

Script Índices

PROMPT Creating Index 'REC_INS_FK_I'

CREATE INDEX REC_INS_FK_I ON RECIBOS

 (INS_CODIGO)

/

 

PROMPT Creating Index 'CRI_ENC_FK_I'

CREATE INDEX CRI_ENC_FK_I ON CRIANCAS

 (ENC_CODIGO)

/

 

PROMPT Creating Index 'CRI_TUR_FK_I'

CREATE INDEX CRI_TUR_FK_I ON CRIANCAS

 (TUR_CODIGO)

/

 

PROMPT Creating Index 'OCO_CRI_FK_I'

CREATE INDEX OCO_CRI_FK_I ON OCORRENCIAS

 (CRI_CODIGO)

/

 

PROMPT Creating Index 'OCO_COL_FK_I'

CREATE INDEX OCO_COL_FK_I ON OCORRENCIAS

 (COL_CODIGO)

/

 

PROMPT Creating Index 'TUR_COL_FK_I'

CREATE INDEX TUR_COL_FK_I ON TURMAS

 (COL_CODIGO)

/

 

PROMPT Creating Index 'INS_ACT_FK_I'

CREATE INDEX INS_ACT_FK_I ON INSCRICOES

 (ACT_CODIGO)

/

 

PROMPT Creating Index 'INS_CRI_FK_I'

CREATE INDEX INS_CRI_FK_I ON INSCRICOES

 (CRI_CODIGO)

/

Script Constraints

PROMPT Creating Primary Key on 'RECIBOS'

ALTER TABLE RECIBOS

 ADD (CONSTRAINT REC_PK PRIMARY KEY

  (CODIGO))

/

 

PROMPT Creating Primary Key on 'CRIANCAS'

ALTER TABLE CRIANCAS

 ADD (CONSTRAINT CRI_PK PRIMARY KEY

  (CODIGO))

/

 

PROMPT Creating Primary Key on 'OCORRENCIAS'

ALTER TABLE OCORRENCIAS

 ADD (CONSTRAINT OCO_PK PRIMARY KEY

  (CODIGO))

/

 

PROMPT Creating Primary Key on 'COLABORADORES'

ALTER TABLE COLABORADORES

 ADD (CONSTRAINT COL_PK PRIMARY KEY

  (CODIGO))

/

 

PROMPT Creating Primary Key on 'ACTIVIDADES'

ALTER TABLE ACTIVIDADES

 ADD (CONSTRAINT ACT_PK PRIMARY KEY

  (CODIGO))

/

 

PROMPT Creating Primary Key on 'ENCARREGADOS'

ALTER TABLE ENCARREGADOS

 ADD (CONSTRAINT ENC_PK PRIMARY KEY

  (CODIGO))

/

 

PROMPT Creating Primary Key on 'TURMAS'

ALTER TABLE TURMAS

 ADD (CONSTRAINT TUR_PK PRIMARY KEY

  (CODIGO))

/

 

PROMPT Creating Primary Key on 'INSCRICOES'

ALTER TABLE INSCRICOES

 ADD (CONSTRAINT INS_PK PRIMARY KEY

  (CODIGO))

/

 

 

       

 

PROMPT Creating Foreign Key on 'RECIBOS'

ALTER TABLE RECIBOS ADD (CONSTRAINT

 REC_INS_FK FOREIGN KEY

  (INS_CODIGO) REFERENCES INSCRICOES

  (CODIGO))

/

 

PROMPT Creating Foreign Key on 'CRIANCAS'

ALTER TABLE CRIANCAS ADD (CONSTRAINT

 CRI_ENC_FK FOREIGN KEY

  (ENC_CODIGO) REFERENCES ENCARREGADOS

  (CODIGO))

/

 

PROMPT Creating Foreign Key on 'CRIANCAS'

ALTER TABLE CRIANCAS ADD (CONSTRAINT

 CRI_TUR_FK FOREIGN KEY

  (TUR_CODIGO) REFERENCES TURMAS

  (CODIGO))

/

 

PROMPT Creating Foreign Key on 'OCORRENCIAS'

ALTER TABLE OCORRENCIAS ADD (CONSTRAINT

 OCO_COL_FK FOREIGN KEY

  (COL_CODIGO) REFERENCES COLABORADORES

  (CODIGO))

/

 

PROMPT Creating Foreign Key on 'OCORRENCIAS'

ALTER TABLE OCORRENCIAS ADD (CONSTRAINT

 OCO_CRI_FK FOREIGN KEY

  (CRI_CODIGO) REFERENCES CRIANCAS

  (CODIGO))

/

 

PROMPT Creating Foreign Key on 'TURMAS'

ALTER TABLE TURMAS ADD (CONSTRAINT

 TUR_COL_FK FOREIGN KEY

  (COL_CODIGO) REFERENCES COLABORADORES

  (CODIGO))

/

 

PROMPT Creating Foreign Key on 'INSCRICOES'

ALTER TABLE INSCRICOES ADD (CONSTRAINT

 INS_ACT_FK FOREIGN KEY

  (ACT_CODIGO) REFERENCES ACTIVIDADES

  (CODIGO))

/

 

PROMPT Creating Foreign Key on 'INSCRICOES'

ALTER TABLE INSCRICOES ADD (CONSTRAINT

 INS_CRI_FK FOREIGN KEY

  (CRI_CODIGO) REFERENCES CRIANCAS

  (CODIGO))