Sites Grátis no Comunidades.net Criar um Site Grátis Fantástico

Programar é divertido



Total de visitas: 1298
diversos

ESCOLA PROFISSIONAL DE CHAVES

Curso Técnico de Gestão e Programação de Sistemas Informáticos

RELATÓRIO FINAL

da Prova de Aptidão Profissional

Márcio Alexandre Borges Oliveira

1905

 

Chaves 2009/2010

SUMÁRIO

Introdução. 7

1 -      Análise do problema. 8

1.1-         Ferramentas Case. 8

1.2-         Apresentação do problema. 12

1.3-         Propostas para cartão de leitor da EPC.. 15

1.4-         Interface da aplicação. 17

2 -      Base de dados. 22

2.1- Abordagem teórica. 22

2.2- Modelo relacional 24

2.3- Tabelas do projecto. 27

2.4- Tabelas relacionadas. 32

3 -      Manual do programador 33

3.1-Criação da base de dados no Visual Studio 2008. 33

3.2-Formulário Principal 34

3.3-Formulários para registar “Tabelas” 36

3.4-Formulários consultar 42

4 -      Manual de Utilizador 44

4.1-Login. 44

4.2-Formulário Principal 46

4.3-Menu Tabelas. 46

4.3.1-Formulário Leitores. 47

4.3.2-Formulário Livros. 48

4.3.3-Formulários Simples. 48

4.4-Menu Consultas. 49

4.4.1-Formulário Consultar leitores. 50

4.4.2-Formulário Consultar Livro. 50

4.4.3-Formulário Consultar movimentações. 51

4.5-Menu movimentos. 51

4.5.1-Formulário empréstimos. 52

4.5.2-Formulário Devoluções. 54

4.6-Menu apoios. 54

4.6.1-Formulário Internet 55

4.6.2-Formulário E-mails. 55

4.6.3-Formulário Contactos. 56

4.7-Formulário Novo utilizador 56

4.8-Encerrar 56

Considerações Finais. 57

Bibliografia. 58

Anexo A – Visual Basic. 59

 

 

 

 

 

 

 

 

 

 

 

 

 

Sumário de figuras

Fig.1- Diagrama caso de uso perante requisição de um livro escolar 10

Fig.2- Diagrama de caso de uso do responsável pela biblioteca. 11

Fig.3- Local de material de informação exposto para os alunos. 12

Fig.4- Posicionamento de livros nas estantes, distribuídos por categorias. 13

Fig.5- Local de acesso para os alunos fazerem pesquisas. 13

Fig.6- Estantes de livros divididas em categorias. 14

Fig.7- Talão de requisição. 14

Fig.8- Tipos de leitor 15

Fig.9- Proposta do cartão de leitor para a biblioteca - A.. 16

Fig.10- Proposta do cartão de leitor para a biblioteca - B.. 16

Fig.11- Campos pertencentes ao registo de um leitor para a biblioteca. 17

Fig.12- Divisão do menu Tabelas. 17

Fig.13- Tipo de géneros de leitores. 18

Fig.14-Menu consultas e seus submenus. 20

Fig.15-Menu movimentações e submenus. 20

Fig.16-Definição de linhas e colunas. 24

Fig.17-Registos para afirmar chaves (primárias, estrangeiras) 25

Fig.18- Relacionamento de 1:N.. 27

Fig.19- Tabelas relacionadas. 32

Fig.20-Server Explorer 33

Fig.21-Atribuição do nome a base de dados. 33

Fig.22-Adicionar uma tabela a base de dados. 34

Fig.23-Tabela autor criada. 34

Fig.24- Formulário Principal 35

Fig.25- Alteração de algumas propriedades do ToolStrip. 35

Fig.26- Divisão dos submenus do menu Tabelas. 36

Fig.27- Caminho para abrir formulário “Tabela Género Leitor” 36

Fig.28- Formulário “Tabela Género Leitor” 37

Fig.29- Descrição dos componentes do formulários. 37

Fig.30-Formulário Login. 44

Fig.31- Mensagem de erro de dados incorrectos. 44

Fig.32-Mensagem de erro de falta de preenchimento de dados. 45

Fig.33-Mensagem de erro de falta de preenchimento da palavra-chave. 45

Fig.34-Mensagem de dados correctos. 45

Fig.35-Formulário Principal 46

Fig.36-Divisão do menu Tabelas. 46

Fig.37-Formulário leitores. 47

Fig.38-Formulário livros. 48

Fig.39-Vista de dados do formulário editora. 48

Fig.40-Vista da grelha do formulário editora. 49

Fig.41-Vista da consulta do formulário editora. 49

Fig.42-Menu Consultas. 49

Fig.43-Formulário consultar leitores. 50

Fig.44-Formulário Consultar Livro. 50

Fig.45-Formulário consultar movimentações. 51

Fig.46-Menu movimentos. 51

Fig.47-Formulário empréstimos. 52

Fig.48-Requisição passo1. 52

Fig.49- Requisição passo2. 52

Fig.50-Requisição passo3. 53

Fig.51-Listagem das requisições. 53

Fig.52-Formulário devoluções. 54

Fig.53-Menu Apoios. 54

Fig.54-Formulário Internet 55

Fig.55-Formulário Listagem dos e-mails. 55

Fig.56-Formulário contactos. 56

Fig.57-Formulário novo utilizador 56

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sumário de Tabelas

Tabela 1- Exemplo de uma tabela não normalizada. 25

Tabela 2- Exemplo de uma tabela normalizada. 25

Tabela 3- Tabela autor 27

Tabela 4- Tabela Editoras. 27

Tabela 5-Tabela género de leitor 27

Tabela 6- Tabela género de material 27

Tabela 7- Tabela área/estante. 28

Tabela 8- Tabela cursos. 28

Tabela 9- Tabela leitor 29

Tabela 10- Tabela Livro. 30

Tabela 11- Tabela Empréstimos2. 30

Tabela 12- Tabela controlo. 31

 

 

Introdução

Após o culminar de três anos de formação como Técnico de Gestão e Programação de Sistemas Informáticos é chegada a hora da apresentação do trabalho final – a Prova de Aptidão Professional.

Confesso que senti algumas dificuldades na obtenção de informação para o tratamento da temática em questão - “Software Biblioteca-EPC”. Contudo com algum esforço e dedicação fui superando algumas dificuldades que iam surgindo.

Como trabalho prévio, apresentei um estudo a biblioteca da E.P.C onde delineei alguns objectivos para a concretização deste trabalho final, tais como, elementos que constituem um livro, como se efectua uma requisição, entre outros.

Este meu trabalho subdivide-se, então, em quatro capítulos. Numa primeira fase apresentarei a análise do problema, onde será tratada essa informação recolhida, elaborando assim um retrato de como irá ser construída esta aplicação. Numa segunda fase abordarei o conceito de base de dados, construindo assim a base de dados com as respectivas tabelas do meu projecto. Já numa terceira fase, explicarei a construção do meu projecto no Visual Studio 2008, desde a construção da base de dados até a definição do código. Terminarei assim com a quarta fase que corresponde o manual de utilizador, que permitirá dar a conhecer o funcionamento deste software. Este estudo de caso será mais aprofundado no momento da defesa oral desta prova, permitindo um contacto directo com todos os factos e informações aqui apresentadas.

Espero, com este trabalho, demonstrar as minhas competências e todo o empenho a que ele esteve subjacente. Desde já peço desculpa por alguma incongruência que se verificar.

 

 

1 -       Análise do problema

Neste capítulo vão ser abordados conceitos teóricos sobre as várias fases que constituem a elaboração de um projecto informático. Será dada especial importância à fase de análise onde se definem todos os pré-requisitos da aplicação a desenvolver. No final deste capítulo será orientado o estudo da análise para o projecto ”Software Biblioteca-EPC”.

A fase da análise define os requisitos do sistema, melhor dizendo, define o problema que o programador está a tentar resolver. O resultado desta fase é um documento de requisito, ou seja, um documento que indica de forma clara e precisa o que está a ser construído, definindo metas, objectivos a que se pretende chegar. Portanto nesta fase o grande objectivo consiste em realizar estudos de processos a fim de encontrar o melhor caminho racional para que a informação possa ser processada. A pessoa responsável por efectuar a análise de um projecto é o chamado analista de sistemas. Ele estuda os diversos sistemas existentes entre hardwares (equipamentos), software (programas) e o utilizador final.

1.1-       Ferramentas Case

 As ferramentas case Software são um conjunto de técnicas que auxiliam o engenheiro do software no desenvolvimento de aplicações. Exemplos destas ferramentas são por exemplo o UML, JUDE, etc.

Estas ferramentas permitem criar diferentes tipos de diagramas:

ü  Diagrama de fluxo de dados;

ü  Diagrama de sequência;

ü  Diagrama de classes;

ü  Diagrama de casos de uso.

Relativamente para a construção do meu projecto resolvi abordar este estudo através de diagramas de casos de uso. Um diagrama de caso de uso possui os seguintes símbolos, não esquecendo que cada símbolo define-se por uma função do sistema:


 

Este símbolo representa o actor, melhor dizendo, o actor pode se visto como um entidade que executa determinadas funções no sistema.

 

O símbolo representa os casos de uso, também designados como casos de utilização.

 

A nível dos relacionamentos entre casos de uso podemos encontrar os seguintes:

·         Entre actor e caso de uso, verificando-se uma associação, ou seja, define uma funcionalidade do sistema do ponto de vista do utilizador como podemos evidenciar na figura abaixo.

·         Entre actores existindo a generalização.

Neste caso de podemos verificar que os casos de uso do actor B são também casos de uso do actor A. No entanto o actor A pode ter os seus próprios casos de uso.

·         Entre casos de uso:

O include é uma das formas de interacção, um dado caso de uso pode incluir outro, ou seja, incluir é uma relação directa entre dois casos de usos, implicando que o comportamento do caso de uso incluído é inserido no comportamento do caso de uso incluso. Esta relação indica uma obrigatoriedade do caso de uso incluir a funcionalidade do outro caso de uso incluído.

 

Um relacionamento include de um caso de uso A para um caso de uso B é essencial para o comportamento de A, ou seja, pode dizer-se que B é uma parte de A.

 

O extend é outra forma de interacção, ou seja, um caso de uso pode estender a outro. Esta relação implica a existência que um caso de uso pode ser incluído ou não noutro caso de uso.

Um relacionamento extend de um caso de uso B para um caso de uso A, indica que o caso B não é essencial a descrever o comportamento de algo.

Por exemplo no meu caso quando uma pessoa pretende requisitar um livro na biblioteca vai acontecer o seguinte caso:

Ø  O aluno requisita um livro;

Ø  O aluno devolve o livro;

Ø  O bibliotecário regista o aluno;

Ø  O bibliotecário regista novos livros.

Apresenta-se de seguida o caso de uso destas quatro situações.

Fig.1- Diagrama caso de uso perante requisição de um livro escolar

 

De seguida apresenta-se o seguinte caso de uso do funcionamento por parte do responsável pelo utilizador.

Fig.2- Diagrama de caso de uso do responsável pela biblioteca

Como podemos evidenciar no diagrama de caso de uso anterior, podemos afirmar que o responsável pela biblioteca pode registar (novos leitores, novos livros, novos cursos, novos géneros de material, etc.).

Também poderá listar, até mesmo consultar os dados introduzidos no sistema, chegando mesmo poder imprimir relatórios que permitiram um maior controlo na gestão da biblioteca. Temos como exemplo, se o utilizador pretender imprimir um relatório no final de um ano lectivo com os dados relativamente de todos os livros da biblioteca, isto permite-a ao responsável pelo sistema um maior controlo não só em suporte digital, como também em papel. Outra das operações que o responsável da biblioteca terá é de poder adicionar utilizadores, para ajudar no controlo da biblioteca. Este também poderá restringir várias operações que um utilizador poderá ter, melhor dizendo, este define se o utilizador só terá permissões de inserção, visualização, actualização, entre outras.

Relativamente à biblioteca da EPC, proceder-se-á ao estudo do seu funcionamento, das normas de requisições e das devoluções de material.

1.2-       Apresentação do problema

Após uma investigação preliminar, constata-se o seguinte: a biblioteca da EPC, é uma biblioteca constituída por uma única sala, mas esta sala é utilizada por mais que uma entidade (aluno, professor, funcionários e/ou ex-alunos). A sala é constituída por diversas partes, uma em que contém os manuais escolares, enciclopédias, revistas e todos os dossiers disponibilizados para os alunos, e a outra parte é constituída por alguns computadores de acesso aos alunos. Cada aluno pode ter acesso a vários manuais escolares, enciclopédias, ou outro material exposto ali no momento. Relativamente aos computadores, um computador pode ser utilizado por um ou mais alunos, bastando para tal efectuar um registo. Quanto a requisições do material escolar, este pode ser dividido em duas partes: requisição interna (para alunos, professores, funcionários) e requisição externa (para ex-alunos). Cada aluno pode requisitar apenas três livros no máximo, destacando que para cada requisição de cada manual é obrigatoriamente feito um registo de requisição. Divulga-se que o prazo máximo de devolução de qualquer manual escolar, entre outros, deverá ser feito numa data limite de três dias após a data de requisição. Caso a data limite da devolução do material exceda os três dias, o aluno deverá ser multado com uma multa de cinquenta cêntimos por dia. Excepcionalmente quando exista mais de que um manual duplicado na biblioteca, este prazo pode-se estender até aos quinze dias.

Biblioteca EPC

Frequenta

Aluno

                       M                                                                 1

 

 


Neste modelo temos o seguinte caso de ligação entre duas entidades, o aluno e a biblioteca da EPC. Este caso de uso quer dizer: um aluno frequenta a biblioteca EPC, mas a biblioteca pode ser frequentada por vários alunos.

Em baixo podemos encontrar algumas imagens do espaço da biblioteca da EPC.

Fig.3- Local de material de informação exposto para os alunos

Fig.4- Posicionamento de livros nas estantes, distribuídos por categorias

Estas categorias encontram-se divididas por áreas, por disciplina e também por género de livro (enciclopédia, obra, etc. …)

Fig.5- Local de acesso para os alunos fazerem pesquisas

Estes computadores que se encontram dentro da biblioteca estão a inteira disponibilidade para os alunos da EPC, podendo usufruir de internet e de uma impressora que se encontra na mesma, cujo o(a) responsável pela biblioteca tem a função de zelar por esse material, ou seja, se algum aluno não possuir os respectivos cuidados com o material acabando por danificar, estragar poderá responder por esses actos junto direcção da escola. O aluno para poder aceder a estes computadores, basta fazer um preenchimento numa folha que se encontra exposta em cima da mesa do responsável da biblioteca.

Fig.6- Estantes de livros divididas em categorias

Assim sendo, se o requisitante pretender levar um manual escolar para leitura domiciliária terá de dirigir-se ao funcionário com o manual. O funcionário procederá seguidamente ao preenchimento de um talão de requisição, com duplicado, cujo original será entregue ao aluno e o duplicado ficará na posse do funcionário. Apresenta-se a seguir a figura correspondente ao talão em causa.

                                                                                                 REQUISIÇÃO N-º

                                                                                                 BIBLIOTECA

LEITURA DOMICILIÁRIA                                            Data da Devolução________/_______________200__

Autor__________________________________________________________________

Título _________________________________________________________________

______________________________________________________________________

Requisitante ___________________________________________________________

Curso ________________________________________________________________

N-º Registo __________________________ Data da Requisição ____/______/200__

                                   Assinatura do Requisitante

                ______________________________

Fig.7- Talão de requisição

Face à requisição do material quer no modo interno quer no modo externo, identifiquei que o registo que se fazia sobre a requisição era insuficiente, ou seja, não possuía informação suficiente acerca de quem requisitava os manuais, ou outro material disponibilizado na biblioteca da EPC. Por isso, proponho uma alteração ao talão da biblioteca, que deveria conter um campo chamado “tipo de requisitante”, onde teria 4 opções de escolha (Alunos, Funcionários, Professores e Outros). Caso o responsável pela biblioteca escolhesse a opção Alunos, deverá proceder ao preenchimento do ano do aluno, do número e do curso.

X

Alunos

 

Funcionários

 

Professores

 

Outros

Fig.8- Tipos de leitor

Como podemos identificar nas figuras anteriores, devemos destacar que ao responsável pela biblioteca cabe a função de executar um registo de um requisitante, esse registo vai ser feito por tipo. Cada tipo de registo contém um formulário específico (com dados mais concretos), e a cada registo vai ser atribuído um cartão de leitor. Só é permitido um cartão de leitor por registo, ou seja, cada pessoa só poderá possuir um cartão de leitor.

1.3-       Propostas para cartão de leitor da EPC

O cartão EPC-Biblioteca terá um número atribuído, melhor dizendo, este cartão vai ajudar o responsável pela biblioteca a fazer as requisições. Basta ao responsável da biblioteca colocar o código atribuído no cartão de leitor no formulário da requisição, e automaticamente o programa vai buscar os dados relativamente ao leitor e introdu-los no formulário. Este cartão tem o benefício de ajudar o responsável pela biblioteca, tornando mais rápido, eficiente o processo de registo das requisições. Mas deixando bem claro que o responsável pela biblioteca tem a função de conferir os dados, a cada requisição feita. Caso o responsável pela biblioteca confira os dados, estes se encontrem correctos, pode prosseguir, executando a requisição. Caso o responsável identifique alguma anomalia, erro nos dados do leitor, terá um botão no formulário que lhe permitirá alterar, modificar os dados do leitor. Um exemplo desta situação se um leitor mudar de morada, ou de número de telemóvel, etc.

Em baixo encontram-se duas propostas do cartão para a biblioteca que pretendo apresentar a Direcção pedagógica.

Cartão Biblioteca

 

Número do Leitor_____ Ano do Leitor____Nº do Aluno_______________________

Nome_____________________________________________________________

 

 

Fig.9- Proposta do cartão de leitor para a biblioteca - A

        Cartão de Leitor

 

Número de Leitor: _________________________________

Ano do Leitor: ________ Número de aluno: ____________

Assinatura do Leitor: _____________________________________________

Fig.10- Proposta do cartão de leitor para a biblioteca - B

Para cada aluno teremos informação que pode ser dividida em dois grandes grupos:

 Fig.11- Campos pertencentes ao registo de um leitor para a biblioteca

Como podemos identificar no esquema anteriormente referido, muitos dos dados que aqui são pedidos são de carácter obrigatório. Podemos dar como exemplos os campos:

v  Data de Nascimento.

v  Nome do leitor

Mas outros dos campos não são de carácter obrigatório, servem só para uma melhor contextualização do leitor, ou seja, o campo Encarregado de Educação, e-mail, número de telefone, servem para que o responsável da biblioteca possa contactar o respectivo leitor, quando este, não respeite as normas estipuladas pela Biblioteca. Relativamente ao contacto como já evidenciei anteriormente, pode ser feito de várias maneiras. Pode ser feito via e-mail, contacto telefónico ou CTT.

1.4-       Interface da aplicação

Relativamente à construção do projecto, este deverá conter uma opção no menu chamada de “Tabelas” que terá as seguintes opções:

Fig.12- Divisão do menu Tabelas

Estas opções anteriormente vistas, tem como objectivo de o responsável pela biblioteca possa introduzir todos os dados em determinadas tabelas de modo que esses dados fiquem disponibilizados para um fácil acesso. No caso do registo de um leitor teremos de definir o género de leitor a que pertence. 

O género de leitor estará subdividido em quatro escolhas:

Fig.13- Tipo de géneros de leitores

Assim, podemos evidenciar que o menu Tabelas vai-se subdividir em vários submenus. Então partindo do princípio, vamos construir um formulário chamado Géneros de leitores que permitira todos os géneros (“alunos”, leitores “professores”, leitores “funcionários” e leitores “outros”).

Como podemos verificar o processo (caminho) que o utilizador vai percorrer é o seguinte:

Terá que clicar no menu a opção “Tabelas”, aí irá abrir vários submenus tendo que escolher o “Género de leitor”, nesse formulário vai se poder alterar, eliminar e inserir dados. Nesse formulário vamos registar os vários géneros de leitores que vão existir (Aluno/ Professor/ Funcionários/ Outros).

          Assim, procederemos do mesmo modo para registar os autores, as editoras, as áreas (estante), género de material e cursos.

Neste menu “Tabelas”, teremos também dois formulários que nos permitiram registar os leitores e os livros. Essas duas tabelas estarão directamente relacionadas com as outras (autores, editoras, áreas, género de material, género de leitor e cursos).  

Estes formulários vão conter alguns campos que são carácter obrigatório e outros de carácter não obrigatório, para que se possa facilitar a inserção de todo o material, não só abrangendo livros, mas permitindo também o registo de revistas, jornais, etc.

De seguida vou descrever alguns aspectos que são muito importantes no registo de um livro. Os dados que são encontrados num livro podem-se dividir em quatro grupos:

1.    Dados gerais;

2.    Identificação;

3.    Informação descritiva;

4.    Outros.

O primeiro e segundo grupo são compostos por um único dado. O primeiro grupo é constituído pelo dado ano de publicação do livro. E o segundo grupo é composto o ISBN (International Standard Book Number), ou seja, esse ISBN é um elemento essencial para as encomendas no comércio livreiro e para o mercado das bibliotecas a nível nacional e internacional. O terceiro grupo contém dados como:

ü  Titulo;

ü  Autor;

ü  Editora;

ü  Local de edição;

ü  CDU

ü  Cota

O CDU (Classificação Decimal Universal) é um esquema internacional de classificação de documentos. Baseia-se no conceito de que todo o conhecimento pode ser dividido em 10 classes principais, e estas podem ser infinitamente divididas numa hierarquia decimal. É o esquema de classificação utilizado na nossa biblioteca, enquadrado numa divisão física por áreas departamentais (Engenharias Alimentar, Civil, Mecânica e Electrónica) e por áreas comuns (Informática, Metodologia, Ciências Sociais e Matemática).

Por fim, o ultimo grupo, que é composto por:

ü  Número de exemplares;

ü  Volume;

ü  Edição;

ü  Colecção.

Quanto as áreas que se podem encontrar na biblioteca, como são diversas, o melhor é introduzir um formulário em que o responsável pela biblioteca possa introduzir todas as áreas (estantes).

A aplicação também deverá possuir um menu para fazer consultas que irão desde consultar os leitores, os livros e todas as movimentações (empréstimos e devoluções).

Então de seguida irei apresentar a constituição do menu “Consultas”, não esquecendo que deverei colocar filtros para uma melhor consulta mais personalizada.

Fig.14-Menu consultas e seus submenus

Possuirá também o menu “Movimentações” que será dividido em “Empréstimos” e “Devoluções”. Neste menu vai ser onde se irá registar todas as requisições e devoluções do material da biblioteca.

Fig.15-Menu movimentações e submenus

Outros menus que constituirão o meu projecto são: o menu “Apoios” e “Ferramentas”. O menu ferramentas permitirá ao utilizador adicionar novos utilizadores para aceder ao projecto. Quanto ao menu “Apoios” este subdividir-se-á em três, um formulário para aceder a internet através do software quando devidamente conectado a internet. Outro para ver os contactos de todos os leitores que tenham dado esse dados. Por fim, outro formulário, mas em vez de ver os contactos, este destina-se particularmente aos e-mails.

Basicamente, esta será mais ao menos a construção que terá o meu projecto, alterando algumas coisas (melhorias).

 

 

 

 

2 -       Base de dados

Neste capítulo abordar-se-á toda a teoria de base de dados. Será também aqui mostrada a elaboração de base de dados do meu projecto, mostrando as tabelas que a constituem, bem como todos os relacionamentos entre elas.

2.1- Abordagem teórica

Uma Base de Dados é um simples local onde se armazena um conjunto de informação relacionado com determinado assunto ou finalidade, ou seja, é uma colecção de dados de informação estruturados de uma determinada forma que permita a consulta, actualização, ou outros tipos de operações da mesma. Uma base de dados serve assim para gerir um conjunto vasto de informação de modo a facilitar a organização, manutenção e pesquisa dos dados.

Uma base de dados para ser completa deve passar por seis fases:

·         Planeamento - Levantamento das necessidades (informações), organizar e planear;

·         Recolha de requisitos - Elaboração de um documento com os objectivos que o projecto visa atingir;

·         Desenho da base de dados – Nesta fase é desenhada a base de dados, para um óptimo a nível da estruturação, esta fase é subdividida em três:

§          Desenho conceptual: Consiste na construção do modelo conceptual de dados, que reflecte o entendimento que os utilizadores têm dos dados, sendo independente de qualquer implementação física. Aqui a abordagem mais utilizada são os diagramas E-R (Entidades e Relacionamentos).

§          Desenho lógico: Corresponde à transformação do desenho conceptual em estruturas de dados que são implementáveis no sistema de gestão da base de dados. O modelo mais utilizado neste tipo de desenho é o modelo relacional, este modelo destaca-se como um dos mais utilizados na construção de modelos lógicos de dados.  

§          Desenho físico: Passa pela definição dos detalhes físicos que serão considerados na implementação do modelo lógico, e que serão específicos no sistema de gestão da base de dados.

·         Construção - Aqui é onde toda a base de dados é construída e testada;

·         Implementação - Esta fase é definida pela instalação e funcionamento da base de dados na aplicação;

·         Manutenção – Fase onde se resolve situações de anomalias ou erros quer ao nível da aplicação, quer ao nível da base de dados.

As bases de dados têm inúmeras vantagens, das quais podemos destacar:

ü  Utilização de pouco espaço físico;

ü  Eliminação da redundância de utilização;

ü  Facilidade e rapidez na manipulação da informação armazenada.

Abaixo citam-se algumas ferramentas disponíveis no mercado que nos permitem informatizar uma base de dados.

§  Microsoft Access;

§  Microsoft SQL;

§  FileMaker;

§  Oracle;

§  DB2;

§  Mysql;

§  Etc.

Estes são alguns produtos que permitem criar e manter bases de dados.

Para construir uma Base de dados temos de abordar diversos aspectos que vão desde a escolha do tema da base de dados, fazer perguntas tipo “Quantos…”, “Quais…”, “Que…”, “Desde quando…”. Devemos também começar por definir as nossas tabelas, destacando a melhor forma de guardarmos a nossa informação.

Os modelos para a criação de bases de dados são vários, mas apenas será aqui abordado o modelo relacional.

Uma base de dados tem de ser composta por entidades e atributos.

Livro

Entidade:
Abstracção de objectos ou conceitos do mundo real acerca dos quais queremos guardar informação. Graficamente uma entidade representa-se por um rectângulo.

 

 

Atributos de uma entidade: Características comuns aos objectos ou conceitos representados pela entidade. Os atributos graficamente representam-se por um circulo.

Livro

Título

 

 

 

 


Como podemos evidenciar, temos uma entidade “Livro” que possui o atributo “Livro”.

         Podemos encontrar quatro tipos de atributos:

Ø  Atributos Simples (Exemplo: BI);

Ø  Atributos Compostos (Exemplo: Nome);

Um atributo composto pode ser considerado simples, dependendo da situação que se trata.

Quando os atributos básicos são tratados separadamente, um atributo composto entra na entidade com todos os seus atributos básicos (Funcionário: BI, Npróprio, Apelido, Sexo).

Ø  Atributos Derivados (Exemplo: Tempo_actividade) estes atributos devem ser identificados na análise mas não devem fazer parte da entidade pois podem ser calculados;

Ø  Atributo Multivalor (Exemplo: Localizações) para cada atributo multivalor cria-se uma nova entidade exemplo (Loc_Dep: Número, Localização).

2.2- Modelo relacional

Fig.16-Definição de linhas e colunas

No modelo relacional, cada entidade dá origem a uma tabela. Numa tabela as linhas são os registos e as colunas são os campos.

Como podemos ver na figura anterior, esta tabela desenvolvida no Microsoft Access 2007 possui vários registos. Esta tabela tem cinco campos (colunas) que são: (ID REGISTO, ISBN, TITULO, AUTOR, EDITORA) e dois registos.

Dados – elementos que caracterizam uma entidade (pessoa, objecto ou organização);

Campo – característica ou atributo individual, tipicamente representado em colunas de uma tabela;

Registo – linha de uma tabela com a informação de cada elemento de uma entidade;

Tabela – elemento de suporte de dados, que se estrutura segundo campos e registos;

Associação – processo pelo qual se ligam tabelas através de valores de dados relacionados.

Chave primária e chaves estrangeiras

Chave ou Identificador de uma entidade: Atributo ou conjunto de atributos que permitem identificar univocamente uma instância de uma entidade.

Chave primária: Corresponde a uma das chaves possíveis e possui as seguintes características:

o   Unívocas - os atributos da chave primária têm um valor unívoco para qualquer instância; não redundantes - se algum dos atributos que formam a chave primária for retirado, os restantes atributos deixam de ser unívocos não nulos - nenhum dos atributos que formam a chave primária poderá ter um valor nulo.

     Chave candidata: Atributo ou conjunto de atributos que podem ser usados como chave primária de uma entidade.

 

Fig.17-Registos para afirmar chaves (primárias, estrangeiras)

             

 

Como podemos ver neste exemplo anterior, o “ISBN” pode ser a chave primária, pois este campo trata-se de um valor único o que permite dizer que se trata de uma chave unívoca. Esta tabela possui duas chaves estrangeiras (são chaves primárias de outras tabelas), que são os campos “AUTOR” e “EDITORA”.

A maior parte do trabalho realizado no processo de desenho de uma base de dados consiste na sua normalização até um determinado nível.

A teoria da normalização é baseada no conceito de forma normal, onde existem regras a qual a estrutura de informação deve obedecer para que possa afirmar qual o nível de normalização da estrutura. A essas regras dá-se o nome de “Formas Normais”.

ü   Primeira Forma Normal (1FN);

ü   Segunda Forma Normal (2FN);

ü   Terceira Forma Normal (3FN);

ü   Forma Normal de Boyce-Codd (FNBC);

ü   Quarta Forma Normal (4FN);

ü   Quinta Forma Normal (5FN).

O objectivo da normalização é permitir criar um conjunto de tabelas numa base de dados livre de informação redundante e que possa ser modificado de forma correcta e consistente. Objectivos da normalização:

o   Minimizar ou eliminar a redundância da informação;

o   Melhorar a performance do sistema;

o   Permitir a integridade referencial entre entidades.

Uma relação diz-se que esta na primeira forma normal quando esta não contém atributos multivalor e não contém grupos repetidos.

Titulo

Autor

OS MAIAS

ANA, LUIS

Tabela 1- Exemplo de uma tabela não normalizada

Para normalizarmos essa tabela deveríamos ter em conta os nomes do autor. De seguida apresenta-se a tabela normalizada na 1FN.

Titulo

Autor

OS MAIAS

ANA

OS MAIAS

Luís

Tabela 2- Exemplo de uma tabela normalizada

Uma relação encontra-se na segunda forma normal, quando esta relação se encontra na 1FN, e todos os atributos não dependem funcionalmente da totalidade da chave.

Descobre-se que uma relação está na terceira forma normal quando esta se encontra na 2FN e todos os atributos não chave não dependem apenas e só da chave.

Os relacionamentos entre tabelas podem ser de três tipos:

Ø  1:1 (um para um);

Ø  1:N (um para muitos);

Ø  M:N (muitos para muitos).

Fig.18- Relacionamento de 1:N

Em cima, pode se observar um exemplo de um relacionamento do tipo 1:N. Isto significa que o mesmo realizador pode realizar vários filmes, mas um filme só pode ter um realizador, o que quase sempre acontece.

2.3- Tabelas do projecto

A seguir apresenta-se a construção das tabelas da base de dados do projecto, os tipos de dados e se poderão conter valores nulos ou não e as respectivas chaves que se mostram (chaves primarias (PK) e chaves estrangeiras (FK)).

Vou começar pela construção da tabela “autores”, esta tabela tem com objectivo guardar todos os autores que o utilizador insira nela.

 

Nome do campo

Tipo de dados

Valores nulos

Chave

Id autor

Int (numeração automática)

Não

PK

Nome do autor

Varchar (50)

Não

 

Tabela 3- Tabela autor

Nome do campo

Tipo de dados

Valores nulos

Chave

Id editora

Int (numeração automática)

Não

PK

Nome da editora

Varchar (50)

Não

 

Tabela 4- Tabela Editoras

Nome do campo

Tipo de dados

Valores nulos

Chave

Id género de leitor

Int (numeração automática)

Não

PK

Nome género de leitor

Varchar (50)

Não

 

Tabela 5-Tabela género de leitor

Nome do campo

Tipo de dados

Valores nulos

Chave

Id género de material

Int (numeração automática)

Não

PK

Nome género de material

Varchar (50)

Não

 

Tabela 6- Tabela género de material

Nome do campo

Tipo de dados

Valores nulos

Chave

Id área/estante

Int (numeração automatica)

Não

PK

Nome área/estante

Varchar (50)

Não

 

Tabela 7- Tabela área/estante

Nome do campo

Tipo de dados

Valores nulos

Chave

Id curso

Int (numeração automatica)

Não

PK

Nome do curso

Varchar (50)

Não

 

Tabela 8- Tabela cursos

Nome do campo

Tipo de dados

Valores nulos

Chave

ID leitor

Int (numeração automatica)

Não

PK

Nome do leitor

Varchar (50)

Não

 

Id género de leitor

Int

Não

FK

Número de contribuinte

Int

Sim

 

Número de B.I

Int

Sim

 

Data de nascimento

Date

Não

 

Data de registo

Date

Não

 

Sexo

Char

Sim

 

Contacto

Int

Sim

 

E-mail

Varchar (30)

Sim

 

Id curso

Int

Sim

FK

Número do aluno

Int

Sim

 

Distrito

Varchar (30)

Sim

 

Concelho

Varchar (30)

Sim

 

Freguesia

Varchar (30)

Sim

 

Código postal

Varchar (8)

Não

 

Localidade

Varchar (30)

Não

 

Rua/bairro

Varchar (30)

Sim

 

Observações

Varchar (100)

Sim

 

Tabela 9- Tabela leitor

Nome do campo

Tipo de dados

Valores nulos

Chave

Id registo

Int (numeração automática)

Não

PK

ISBN

Varchar(30)

Não

 

Titulo

Varchar (50)

Não

 

Id autor

int

Não

FK

Id editora

Int

Não

FK

Local de edição

Varchar (50)

Sim

 

Ano de publicação

Int

Sim

 

Número de exemplares

Int

Sim

 

Volume

Int

Sim

 

Edição

Int

Sim

 

Colecção

Varchar (50)

Sim

 

Id género de material

int

Não

FK

Id área/estante

Int

Não

FK

Tabela 10- Tabela Livro

Nome do campo

Tipo de dados

Valores nulos

Chave

Id registo

Int (numeração automatica)

Não

PK

Id livro

int

Não

FK

Id leitor

int

Não

FK

Data da requisição

date

Não

 

Data de devolução

date

Não

 

N de renovações

int

Não

 

Inf

Varchar(1)

Não

 

Tabela 11- Tabela Empréstimos2

 

Nome do campo

Tipo de dados

Valores nulos

Chave

Id utilizador

Int (numeração automatica)

Não

PK

Utilizador

Varchar(30)

Não

 

Nome completo

Varchar(50)

Não

 

Palavra-chave

Varchar(30)

Não

 

Permissão

Varchar(3)

Não

 

Tabela 12- Tabela controlo

2.4- Tabelas relacionadas

O modelo relacional consiste num modelo subjacente de um sistema de gestão de base de dados, melhor dizendo baseia-se no princípio em que todos os dados são guardados em tabelas. Estas por sua vez podem estar relacionadas com outras tabelas, ou seja, podem partilhar determinados dados com uma tabela.

Fig.19- Tabelas relacionadas

 

3 -       Manual do programador

Neste capítulo irão ser explicados aspectos relacionados com a programação de todo o projecto. Deve-se referir que todo o projecto foi desenvolvido em Visual Studio 2008, cujo ambiente de trabalho pode ser consultado no anexo A.

3.1-Criação da base de dados no Visual Studio 2008

Para a criarmos uma base de dados devemos dar um clique sobre o menu “View”, e de seguida abrir-nos-á o “Server Explorer”. O próximo passo será dar um clique sobre o ícone destacado como podemos ver na seguinte figura que permite a criação de uma base de dados.

Fig.20-Server Explorer

Escolhemos com que tipo de base de dados vai trabalhar, e atribuímos o nome a nossa base de dados. Neste caso vamos trabalhar com o SQL SERVER. 

Fig.21-Atribuição do nome a base de dados

Então, de seguida aparecerá uma mensagem a informar se a base de dados existe ou não. Caso não exista, surgirá uma mensagem a perguntar se a deseja criar.

 Como podemos evidenciar na figura, segue-se o próximo passo, que será criarmos as nossas tabelas. Para isso basta clicarmos em “Tables” com o botão direito do rato “Add New Table”. Como o processo se executa sempre da mesma forma, vou simplesmente abordar a tabela “Autores”.

Fig.22-Adicionar uma tabela a base de dados

Surgirá então aberta uma tabela, onde temos que definir os campos que a tabela vai ter, o tipo de dados (int, varchar, datetime, etc) e se pode permitir valores nulos ou não.

Fig.23-Tabela autor criada

Por fim, basta guardarmos a tabela atribuindo-lhes o nome que desejamos. Depois é só prosseguir com a construção das restantes tabelas.

3.2-Formulário Principal

Esta aplicação é constituída por um formulário denominado “PAI” que contém um menu a partir do qual serão chamados os formulários “filhos”.

Para definir um formulário como “PAI” é necessário ir à propriedade ISMDICONTAINER e coloca-se a propriedade a TRUE. Como o gosto pelo tamanho das janelas pode ser variado, pode-se maximizar, minimizar ou até mesmo manter no tamanho normal do formulário “pai” na propriedade windowState. Para abrir cada um dos formulários “filhos” são necessárias as instruções:

Nome do formulário filho. MDIPARENT = ME

Nome do formulário filho. Show ()

Conforme os gostos do programador, este pode personalizar o formulário principal, neste caso adicionou-se um “ToolStrip” que irá servir de menu para a aplicação. Ao arrastarmos o “ToolStrip” o formulário, devemos editar as propriedades “DisplayStyle” de maneira a poder introduzir imagem e texto.

Fig.24- Formulário Principal

A imagem pode ser posicionada conforme o programador preferir através da propriedade “ImageAlign” (centro, topo, etc.).

Fig.25- Alteração de algumas propriedades do ToolStrip

Como podemos visualizar na imagem anterior podemos alterar algumas propriedades do ToolStrip fazendo um click em cima com o botão direito do rato. Algumas propriedades que podemos alterar por aqui são o alinhamento (direita, esquerda) e a introdução da imagem no menu.

Fig.26- Divisão dos submenus do menu Tabelas

Este menu “Tabelas” é composto por vários submenus. Estes submenus encontram-se diferenciados por separadores. Por exemplo o submenu Curso encontra-se separado por um separador, para informar que o conteúdo que esse formulário, tem a ver especificamente com a escola (cursos) e não com a biblioteca. Os submenus “Leitor” e “Livro” encontram-se destacados devido a se tratarem dos mais importantes.

3.3-Formulários para registar “Tabelas”

O menu “Tabelas” é composto por vários submenus. Vou começar por exemplificar o formulário “Género_leitor” uma vez que os meios são muito similares aos restantes deste submenu.. Os formulários são: Tabelas (Autor, Editora, Área/Estante, Género Material, Género Leitor e Cursos, Livro, Leitor).

Fig.27- Caminho para abrir formulário “Tabela Género Leitor”

De seguida vai abrir o formulário Tabela Género Leitor. Esse formulário apresenta-se de seguida.

Fig.28- Formulário “Tabela Género Leitor”

Este formulário é composto por um “TabControl” (Dados, Grelha, Consulta), três caixas de texto, labels, e diversos botões.

Fig.29- Descrição dos componentes do formulários

O quadrado preto apresenta-nos um TabControl, o quadrado roxo é uma caixa de texto, temos a zona que é um rectângulo de bordos arredondados, a que chamo botões de navegação, ou seja, esses botões servem para que o utilizador navegue perante registos anteriormente introduzidos. Por fim, temos um quadrado azul que se estende na horizontal que nos indica os botões de controlo. A seguir apresenta-se o código que constitui o respectivo formulário.

Como estamos a ligar-nos ao “SQL SERVER” devemos escrever antes da classe publica o seguinte:

Imports System.Data.SqlClient

A classe é composta por diversos procedimentos , um dos procedimentos é o Load() que corresponde ao procedimento que será executado quando se carrega o formulario na aplicação.

Como a maior parte do código é muito similar decidi abordar um único formulário destacando particularmente aspectos de programação como o INSERT, UPDATE, DELETE, MAX, MIN, etc.

        Button6.Visible = False

        Button5.Visible = False

        Button11.Visible = False

Torna os botões invisiveis, para que o utilizador não os possa ver.

              Dim myConnectionStringes As String = "Data Source=.SQLEXPRESS;AttachDbFilename='C:UsersmarcioDocumentsVisual Studio 2008ProjectsSOFTWARE BIBLIOTECASOFTWARE BIBLIOTECAPAP.mdf';Integrated Security=True;User Instance=True"

          Aqui, cria-se uma variavel do tipo string que irá guardar o caminho da base de dados. Como podemos evidenciar, a base de dados encontra-se dentro da pasta “Software Biblioteca-EPC”.

Dim SQL As String = "SELECT * FROM genero_leitor "

        Dim connection As New SqlConnection(myConnectionStringes)

        Dim command As New SqlCommand(SQL, connection)

        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        If reader.HasRows Then

            While reader.Read()

                Debug.WriteLine(reader.Item("id_genleitor"))

                TextBox1.Text = (reader.Item("id_genleitor"))

                Debug.WriteLine(reader.Item("nome_genleitor"))

                TextBox2.Text = (reader.Item("nome_genleitor"))

            End While

        End If

        connection.Close()

        connection = Nothing

        command = Nothing

 

          Neste código mando  visualizar todos os campos da tabela genero_leitor, depois criei um comando que vai executar o metodo , abre-se  a conexão, cria-se uma variavel de leitura. Então depois verifica se existe linhas, se existir linhas vai percorrer a tabela  até ao fim, atribuindo esse último registo as caixas de texto. Assim a caixa de texto “TextBox1” vai tomar o valor do campo (último registo campo id_genleitor na tabela) como a “TextBox2” vai tomar o valor do campo. Por fim, fecha-se a ligação e mando limpar as variaveis.

 

 

 

            While readert.Read()

                Debug.WriteLine(readert.Item("id_genleitor"))

                codigoA = (readert.Item("id_genleitor"))

                Debug.WriteLine(readert.Item("nome_genleitor"))

                nomeA = (readert.Item("nome_genleitor"))

                Dim bb As New ListViewItem.ListViewSubItem

                Dim xx As New ListViewItem

                xx.Text = codigoA

                bb.Text = nomeA

                xx.SubItems.Add(bb)

                ListView1.Items.Add(xx)

            End While

          Neste bocado de código mando percorrer a tabela até ao fim, passando esses valores para as variaveis (codigoA, nomeA), para depois serem passadas para a listview .

If Not readert.HasRows Then

            MessageBox.Show("Não existem registos de qualquer leitor!", _

                            "Software Biblioteca-EPC", MessageBoxButtons.OK, _

                            MessageBoxIcon.Information)

        End If

     Aqui temos uma mensagem de erro a informar-nos que aquela tabela se encontra vazia.

          Arrastou-se para o formulário um TabControl que possui três TabPages.Para arrastar basta ir a ToolBox e arrastar-lo para cima do formulário.

 

Tab3.SelectedTab = TabPage1

 

 

          Permite mudar a Tabpage em que o TabControl “Tab3” se encontra, e colocar na TabPage1.

 

TextBox2.Enabled = TrueàDeixa mexer no conteudo

 

TextBox2.Enabled = Falseànão deixa mexer no conteudo da caixa de texto

 

Para colocar o cursor numa caixa de texto que pretende-mos fazemos o seguinte:

 

Nome da caixa de texto.Focus()

 

 

      Quando se quer limpar uma ListView ou uma ComboBox basta apenas escrever o seguinte:

 

Nome da ListView.Items.Clear()

Nome da ComboBox.Items.Clear()

 

 

No caso de querer limpar uma TextBox:

 

Nome da TextBox.Text=””

Nome da TextBox.Clear()

 

 

     Para registar dados numa tabela temos de utilizar o INSERT

Dim myConnectionStringes As String = "Data Source=.SQLEXPRESS;AttachDbFilename='C:UsersmarcioDocumentsVisual Studio 2008ProjectsSOFTWARE BIBLIOTECASOFTWARE BIBLIOTECAPAP.mdf';Integrated Security=True;User Instance=True"

 

        Dim SQLz As String = "INSERT INTO genero_leitor([nome_genleitor]) VALUES (@nome_genleitor);"

        Dim connectione As New SqlConnection(myConnectionStringes)

        Dim commande As New SqlCommand(SQLz, connectione)

        commande.Parameters.Add("@nome_genleitor", SqlDbType.VarChar).Value = TextBox2.Text.ToUpper

        connectione.Open()

        Dim x As Integer = commande.ExecuteNonQuery()

        If x < 1 Then

            MessageBox.Show(" OPERAÇÃO efectuada não retomou qualquer resultado,contacte responsavel pelo software.", _

                         "Software Biblioteca-EPC", MessageBoxButtons.OK, _

                         MessageBoxIcon.Exclamation)

        Else

            MessageBox.Show("Novo género de leitor registado com sucesso!", _

                        "Software Biblioteca-EPC", MessageBoxButtons.OK, _

                        MessageBoxIcon.Information)

        End If

        connectione.Close()

        connectione = Nothing

        commande = Nothing

Como podemos ver, definimos a nossa”MyConnectionStringes” e fazemos um inserir, isto é, vai guardando o valor que está na caixa de texto, e guarda-la na tabela género leitor em maiúsculas, apresentando uma mensagem de erro a comprovar se o leitor foi registado com sucesso. No fim fecha a ligação e liberta as variáveis.

 

            Dim myConnectionStringa As String = "Data Source=.SQLEXPRESS;AttachDbFilename='C:UsersmarcioDocumentsVisual Studio 2008ProjectsSOFTWARE BIBLIOTECASOFTWARE BIBLIOTECAPAP.mdf';Integrated Security=True;User Instance=True"

 

            Dim id As Integer

            id = CInt(TextBox1.Text)

        If MessageBox.Show("Tem a certeza que pretende eliminar o tipo de leitor " & oo & " seleccionado?", "Biblioteca-EPC", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then

 

            Dim SQLx As String = "DELETE FROM genero_leitor WHERE [id_genleitor] = " & id & ""

            Dim connectionx As New SqlConnection(myConnectionStringa)

            Dim commandr As New SqlCommand(SQLx, connectionx)

            commandr.Parameters.Add("@id_genleitor", SqlDbType.Int).Value = TextBox1.Text

            commandr.Parameters.Add("@nome_genleitor", SqlDbType.VarChar).Value = TextBox2.Text

            connectionx.Open()

            Dim h As Integer = commandr.ExecuteNonQuery()

            If h < 1 Then

                MessageBox.Show("A operação efectuada não retomou qualquer resultado.", _

   "Software Bibliote-EPC", MessageBoxButtons.OK, _

   MessageBoxIcon.Information)

            Else

                MessageBox.Show("Genero de leitor eliminado!", _

                  "Software Bibliote-EPC", MessageBoxButtons.OK, _

                  MessageBoxIcon.Information)

            End If

            connectionx.Close()

            connectionx = Nothing

            commandr = Nothing

            MessageBox.Show("Operação cancelada!", _

  "Software Bibliote-EPC", MessageBoxButtons.OK, _

  MessageBoxIcon.Information)

        End If

        ListView1.Items.Clear()

       

 

O objectivo do código anterior é de eliminar um género de leitor da tabela género de leitor cujo id_genleitor é igual ao conteúdo da TextBox1. O utilizador neste caso poderá cancelar a eliminação do género de leitor se assim o desejar.

 

        Dim myConnectionStrin As String = "Data Source=.SQLEXPRESS;AttachDbFilename='C:UsersmarcioDocumentsVisual Studio 2008ProjectsSOFTWARE BIBLIOTECASOFTWARE BIBLIOTECAPAP.mdf';Integrated Security=True;User Instance=True"

        Dim SQL As String = " SELECT MIN(id_genleitor) FROM genero_leitor"

        Dim connection As New SqlConnection(myConnectionStrin)

        Dim command As New SqlCommand(SQL, connection)

        connection.Open()

        Dim total As Integer = command.ExecuteScalar()

        'Debug.WriteLine("primeiro registo inserido = " + total.ToString)

        Dim xx As Integer

        xx = total

        connection.Close()

        connection = Nothing

        command = Nothing

 

 

Neste código, faz-se uma visualização do primeiro registo da tabela, melhor dizendo, vai buscar a tabela o valor a variavel total. 

A diferença do ExecuteScalar para o ExecuteReader: é que o ExecuteScalar só consegue guardar um único valor, enquanto o ExecuteReader consegue armazenar quantos quizermos.

O mesmo processo se realizará para calcular o MAXminimo do campo id_genleitor atribuindo esse valor,

      

 Dim SQL As String = " SELECT MAX(id_genleitor) FROM genero_leitor"

 

Devemos tambem referir o evento Keypress da caixa de texto que não permite a introdução de caracteres:

 

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

        If Char.IsNumber(e.KeyChar) Then

            e.Handled = True

        End If

    End Sub

           

Podemos também adicionarmos ToolTips para uma aparencia mais acolhedora do software. Para adicionar um ToolTip basta ir ao “ToolBox” e transportar para cima do formulario. Clicando nas propriedades “ToolTip on ToolTip1” de algum objecto(Button, TextBox), definimos  o texto que á de aparecer. Se dermos um clique no ToolTip temos uma propriedade chamada IsBalloon que teremos de alterar para true.

Podemos limitar o número de caracteres numa caixa de texto através da propriedade: MaxLength

Para fazer um actualizar, alterarar dados a uma tabela fazemos um UPDATE como podemos ver a seguir.

  Dim SQLj As String = "UPDATE editora SET [nome_editora] = @nome_editora WHERE [id_editora] = @id_editora"

3.4-Formulários consultar

Antes de começar a falar da programação, resolvi que deveria começar por fazer uma abordagem teórica do que irei fazer nestes tipos de formulários.

No evento Load () da classe vou começar por fazer um select a base de dados e depois irei mandar escrever esses dados numa ListView. Adicionarei de seguida vários radioButtons que quando seleccionados tornarão visíveis certos componentes (TextBox ou ComboBox). O utilizador terá de digitar o parâmetro nessa caixa de texto e então será feito um select onde terá várias condições através da clausura “Where” como podemos visualizar num exemplo em baixo.

Dim SQLx As String = "SELECT id_regist,titulo FROM livro WHERE [id_regist]=" & passagem & ""

Como podemos visualizar no pedaço de código, aí vamos ver o campo id_regist e o titulo da tabela livro cujo o campo id_registo  é igual a uma variável.

Deixo bem claro que podemos ter vários tipos de variáveis, algumas que serão globais outras privadas. Quanto as classes também podem existir classes públicas a privadas. A diferença é que as classes públicas poderão ser acedidas ao longo de todos os formulários.

Face a precisar de definir variáveis globais para a construção do projecto adicionei um module ao projecto.

 

Public passagem As Integer

 

Call Movimentos_Load(Nothing, e)

            Se tornarmos um evento público podemos aceder a esse evento através de outro.

            Aqui mandamos chamar o evento “Movimentos_Load” que esta definido como publico.

 

 

 

 

 

4 -       Manual de Utilizador

Aqui irá ser explicado ao leitor como deverá utilizar o software.

Este software é composto por um programa em visual Basic e por uma base de dados chamada “PAP.

4.1-Login

O login tem como função proteger o acesso a este software. O login é constituído por uma caixa de texto onde terá de digitar o nome do utilizador, e por outra onde terá de introduzir a respectiva palavra-chave (password).

Fig.30-Formulário Login

Aqui o utilizador terá de inserir o nome de utilizador e a palavra-chave, quando estes dados não se encontrarem introduzidos correctamente surgirá a seguinte mensagem de erro.

                              Fig.31- Mensagem de erro de dados incorrectos

Quando o utilizador não inserir nada no campo do nome de utilizador, aparecerá uma mensagem a informar que o utilizador deverá preencher a caixa de texto com o nome de utilizador.     

Fig.32-Mensagem de erro de falta de preenchimento de dados

O mesmo se irá acontecer cujo a falta do preenchimento da palavra-chave se verificar. Apenas o aviso será diferente.

Fig.33-Mensagem de erro de falta de preenchimento da palavra-chave

Quando ambos os dados estejam introduzidos correctamente então que surgirá uma mensagem a informar o utilizador que os dados estão correctos.

Fig.34-Mensagem de dados correctos

4.2-Formulário Principal

Este formulário é constituído por um menu que se subdivide e cinco (Tabelas, Consultas, Movimentos, Apoios, Ferramentas)

Fig.35-Formulário Principal

Para acedermos as nossas tabelas teremos de clicar em “Tabelas” e logo surgira-nos as seguintes divisões.

4.3-Menu Tabelas

Como podemos visualizar na seguinte imagem que se apresenta o menu “Tabelas” subdivide-se em várias opções.

Fig.36-Divisão do menu Tabelas

Para acedermos basta dar um clique em cima da tabela que pretendemos abrir, e logo surgirá o formulário pretendido.

4.3.1-Formulário Leitores

Fig.37-Formulário leitores

Este formulário serve para registar todos os leitores que pretendam requisitar material da biblioteca. Devemos destacar que o utilizador poderá registar, editar, apagar e visualizar todos os leitores. Este formulário possui também outras vertentes que o utilizador deve conhecer, desde ao clicar num registo esse registo será automaticamente passado para as caixas de texto. Ao carregar num número, os registos são visualizados, seleccionados se começarem por esse número. Outro destaque são os botões de navegação que permitem percorrer os dados de um em um ou então ir mesmo para o primeiro ou ultimo registo.

4.3.2-Formulário Livros

Fig.38-Formulário livros

O formulário livro serve para registar todos os livros, ou outro material informativo. Este formulário dispõe das mesmas particularidades do formulário leitores a nível do funcionamento. 

4.3.3-Formulários Simples

Este conceito de formulários simples, vem do facto de determinados formulários terem o mesmo funcionamento e o mesmo desenho gráfico. Os formulários que se enquadram dentro deste grupo são: Autor, Editora, Área/Estante, Género de Material, Género de leitor e Cursos. Vou então proceder ao funcionamento destes formulários simples pegando como exemplo o formulário Tabela Editora.

Fig.39-Vista de dados do formulário editora

Como podemos visualizar este possui botões que permitem adicionar, eliminar, editar como os formulários anteriormente vistos (Leitor, Livro). Realça-se também o aparecimento de um botão que permitirá consultar dados sobre a temática da tabela (Editoras). Outra particularidade que estes formulários possuem, é o facto de poderem listar todos os dados numa grelha.

Fig.40-Vista da grelha do formulário editora

Ao clicar, sobre uma editora o formulário automaticamente vai passar para a vista dados copiando para lá os dados relativos a editora.

 

Fig.41-Vista da consulta do formulário editora

A vista de consultas serve para verificar se uma determinada editora se encontra registada na tabela.

4.4-Menu Consultas

Fig.42-Menu Consultas

Este menu designado “Consultas” permite fazer consultas sobre os leitores, os livros e todas as movimentações da biblioteca (Empréstimos, Devoluções)

4.4.1-Formulário Consultar leitores

Fig.43-Formulário consultar leitores 

Este formulário como o próprio nome indica serve para consultar todos os leitores registados no sistema. O utilizador para além de poder visualizar todos os leitores, também poderá consultar esses dados por nome, género de leitor, número de B.I, data de nascimento, curso. Não O utilizador poderá eliminar a partir daqui um determinado leitor que se encontre registado.

4.4.2-Formulário Consultar Livro

Fig.44-Formulário Consultar Livro

Este formulário transporta a mesma funcionalidade que o formulário anterior (consultar leitor), isto é, permite fazer consultas através de parâmetros a determinados materiais registados no sistema. Neste caso desde livros, revistas, enciclopédias. 

4.4.3-Formulário Consultar movimentações

Fig.45-Formulário consultar movimentações

Este formulário permite visualizar todas as movimentações executadas na biblioteca. As movimentações podem ser desde empréstimos ou devoluções. Os empréstimos estarão marcados com um “R” e as devoluções com um “D” na ultima coluna do formulário.

4.5-Menu movimentos

Fig.46-Menu movimentos

Como podemos identificar na figura acima, o menu “Movimentos “ subdivide-se em dois, “Empréstimos” e “Devolução”.

4.5.1-Formulário empréstimos

Fig.47-Formulário empréstimos

Este formulário permite registar empréstimos de livros por parte de um determinado leitor. Para se executar um novo registo o utilizador deverá proceder da seguinte forma:

Clicar no botão “+” que permitirá fazer um novo registo. De seguida o formulário vai obter o seguinte aspecto.

Fig.48-Requisição passo1

O  utilizador terá de clicar no botão para transferir os dados do livro, e da mesma forma procederá para os leitores. Podemos assim visualizar essa fase na seguinte figura que corresponde a introdução do livro.

Fig.49- Requisição passo2

O utilizador terá de dar um duplo clique em cima da lista, e esse registo desse livro será transferido automaticamente para as caixas de texto.

Fig.50-Requisição passo3

De seguida, o utilizador só terá de guardar o registo. O utilizador poderá visualizar todas as requisições ao clicar em “Listar”. Surge então essa listagem na seguinte figura.

Fig.51-Listagem das requisições

Aqui o utilizador poderá eliminar um registo quando ele se encontre seleccionado. Renovar a data de devolução, e a função principal que será atribuir um registo como devolvido.

4.5.2-Formulário Devoluções

Fig.52-Formulário devoluções

Este formulário serve de uso exclusivo para lista as devoluções, tendo mais uma única opção que é eliminar um registo seleccionado.

4.6-Menu apoios

Fig.53-Menu Apoios

O menu “Apoios” divide-se em três opções, “Internet”, “E-Mails”, “Contactos leitores”

4.6.1-Formulário Internet

Fig.54-Formulário Internet

Este formulário permite que o utilizador possa aceder a internet sem sair da aplicação quando devidamente conectado a internet

4.6.2-Formulário E-mails

Fig.55-Formulário Listagem dos e-mails

Este formulário permite visualizar todos os e-mails dos leitores introduzidos no sistema.

4.6.3-Formulário Contactos

Fig.56-Formulário contactos

Este formulário permite ver todos os contactos dos leitores introduzidos caso tenham definido o seu contacto.

4.7-Formulário Novo utilizador

Fig.57-Formulário novo utilizador

Este formulário permite adicionar um utilizador para depois poder aceder através de um login e palavra-chave.

4.8-Encerrar

Este botão serve para sair da aplicação.

Considerações Finais

Quanto a elaboração do meu projecto, acho que a construção deste projecto contribuiu para adquirir mais conhecimento face ao Visual Studio 2008.

Confesso que a realização deste trabalho foi uma espécie de teste não só as minhas capacidades, mas também ao meu empenho e dedicação que nem sempre foi ao longo dos três anos de formação. Tenho plena consciência que este podia estar muito mais enriquecido e aprofundado se o tivesse iniciado muito mais atempadamente.

Apesar de nunca ter antes abordado a ligação do Visual Studio 2008 com a base de dados SQL Server, e o facto de encontrar muita dificuldade. Acho que consegui ultrapassar as barreiras por cima e concretizar o projecto com sucesso. Uma vez mais, peço desculpa por alguma incongruência que se verificar.

 

 

Bibliografia

Portugal-a-Programar, SA, 2008 [Site]. Acesso: http://www.portugal-a-programar.org

LOUREIRO, HENRIQUE - Visual Basic 2008 – Desenvolvimento de Aplicações. 1ª Edição. Lisboa: FCA, 2008.

Visual Basic .NET. Wikimedia Foundation, Inc..,2010. [Site]. Acesso: http://en.wikipedia.org/wiki/Visual_Basic_.NET

Loureiro, Henrique - Visual Basic 2008 Curso Completo. 2.ª Edição. Lisboa: FCA, 2009.

 

Anexo A – Visual Basic

O Visual Basic surgiu já há algum tempo, marcando o ponto de partida da carreira de Bill Gates, quando deixou a faculdade e com um amigo fundou a Microsoft. Em duas semanas fez um interpretador para o Basic, o primeiro produto a ser comercializado pela Microsoft. Por essa construção conseguiu uma permissão da IBM para fazer o sistema operacional desse computador, o MS-DOS, que marcou o início do monopólio da Microsoft.

Quando o Windows se tornou padrão, pensava-se que a programação para este ambiente só seria possível com linguagens como C, sendo impossível alguma pessoa com pouca experiência fazer um programa por mais simples que fosse. Foi aí que surgiu o Visual Basic, como um novo BASIC, deixando de ser confuso como o anterior. Passou a ser estruturado e mais potente. Tornou-se a linguagem mais utilizada em todo o mundo, sendo considerada uma das causas do sucesso do Windows. A título de curiosidade, em 1998, havia cerca de 3 milhões de programadores em Visual Basic.

Fazendo assim uma retrospectiva:

Ano

Versão

1987

Quick BASIC deu origem ao Visual Basic

1991

1.0

Outubro de 1991

2.0

Janeiro de 1996

5.0

2005

6.0

2008

Visual Basic 2008.net

 

 

 

 

 

                                                                                                                                       

 

 

 

 

O Visual Basic então é uma linguagem de programação, sendo parte integrante do pacote Microsoft Visual Studio. Como vimos anteriormente, a versão mais recente faz parte do pacote Visual Studio.NET, direccionada para aplicações. Net, embora ainda actualmente se utilize muito a versão anterior (Microsoft Visual Studio 6.0).

A linguagem é dirigida por eventos (event driven), e possui também um ambiente de desenvolvimento integrado (IDE - Integrated Development Environment) totalmente gráfico, facilitando muito a construção da interface das aplicações (GUI - Graphical User Interface), daí o nome "Visual". Nas suas primeiras versões, o Visual Basic não permitia acesso a base de dados, sendo portanto voltado apenas para iniciantes, mas devido ao sucesso entre as empresas, a linguagem adoptou tecnologias como DAO, RDO, e ADO, também da Microsoft, permitindo fácil acesso a bases de dados. Mais tarde, foi adicionada também a possibilidade de criação de controles ActiveX, e, com a chegada do Visual Studio.NET, o Visual Basic tornou-se uma linguagem totalmente orientada a objectos

Verificaram-se algumas mudanças que devem ser aqui salientadas. A partir de 2002 (a primeira versão da plataforma.Net) a linguagem Visual Basic mudou em vários aspectos, ganhando muitos recursos anteriormente utilizados noutras linguagens como Java e C++ (herança, polimorfismo, etc.). Porém, continuou com a mesma sintaxe, mas por ser orientado a objectos, as suas funções e os métodos foram agrupados em namespaces e classes.

Outra das grandes melhorias com a plataforma.Net que consolidaram a linguagem foi a possibilidade de programação para WEB (ASP.Net), dispositivos móveis, Windows Forms e mais recentemente Silverlight. O acesso a dados, que sempre foi um dos principais recursos, foi melhorado com o ADO.Net (baseado em XML). Assim, permite um acesso separado da base de dados.

 

 

 

O ambiente gráfico do visual Basic é constituído por: (Principal, Toolbox, projecto, propriedades e formulários) sendo estas exibidas por defeito.

 

Toolbox – (A) Possui um conjunto de ferramentas em que o utilizador as usa durante o projecto para introduzir controlos dentro do Form (que é a janela da interface com o usuário).

Menu - (B) Mostra os controlos utilizados para construir a aplicação.

Form – (C) É o formulário no qual se constrói o interface da aplicação. No Form, o utilizador adiciona controlos, gráficos, figuras que irão dar a aparência final da sua aplicação.

Project Windows – (D) Lista os Forms e os módulos de código

Properties Window – (E) Exibe as propriedades existentes para um Form ou outro controlo seleccionado. Uma property (Propriedade) é um valor ou característica associada a um objecto tal como o seu tamanho, caption, cor, entre outras.