PSI 11ºANO » MÓDULO 10 - PROGRAMAÇÃO ORIENTADA A OBJETOS

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO

1. SUBPROGRAMAS: procedimentos e funções

O método utilizado na construção de um programa consiste em decompor um problema inicial sucessivamente em problemas cada vez menores, até que se obtenha uma solução.

Um subprograma executa as mesmas acções que um programa, podendo receber dados do exterior, manipulando a informação e produzindo novos resultados que poderão vir ou não a ser enviados para o exterior.

No entanto, um subprograma é usado para realizar um fim específico, dentro de um objetivo geral, o do programa.
Quando um programa executa uma destas partes, diz-se que houve uma chamada a um subprograma. 

Um subprograma pode ser chamado por outro, e assim sucessivamente. 
A chamada a um subprograma pode ser realizada em qualquer ponto do programa. 

Em Visual Basic, existem dois tipos de subprogramas: os procedimentos e as funções, estando o seu uso dependente do tipo de comunicação de dados pretendida entre o subprograma e o programa que os chama. 

Os procedimentos e as funções podem ser descritos nos eventos dos objectos ou nos módulos globais. 

Um procedimento é um conjunto de instruções que realizam uma tarefa específica. É de salientar que um procedimento não retorna nenhum valor. A sua sintaxe é a seguinte:

Sub <nome_subprograma>(argumentos)

<Instruções>

End Sub

EXEMPLO de um Sub (procedimento):


De um modo geral, poder-se definir função como um conjunto de acções que realizam um subprograma, mas que ao contrário dos procedimentos, retorna um valor ao local onde a função foi chamada

É de salientar que o corpo de uma função tem de existir, pelo menos uma instrução que atribua um valor (do tipo do resultado) ao seu identificador (nome), sendo esse valor, o resultado da chamada à função. Esse valor é retornado para o ponto onde a função foi chamada e a execução do programa contínua a partir desse ponto.

A sua sintaxe é a seguinte:

 Function <nome da função> ( argumentos) As Type

      <Instruções>

      RETURN(VALOR)

End Function

EXEMPLO de uma Function (função):




EXERCÍCIO 1

  Escreve em VB um procedimento para somar 2 números inteiros positvos.

EXERCÍCIO 2

  Escreve em VB uma função para determinar o maior de 3 números inteiros diferentes entre si. A função deve devolver o maior dos 3 números.

EXERCÍCIO 3

  Escreva uma função que determine o valor de uma potência. A base e o expoente são os argumentos da função.

EXERCÍCIO 4

  Construa uma função ou um procedimento que receba um número inteiro compreendido entre 1 e 10 e que mostre a tabuada.

EXERCÍCIO 5

 

Pretende-se uma aplicação que resolva expressões ariméticas. O utilizador deve indicar 2 operandos e escolher o operador.

Desenvolva a solução recorrendo a uma função.


EXERCÍCIO 6

 

Observe o seguinte formulário que representa o registo da referência (string*30), da designação (string*50) e do preço de produtos.Note que o campo referência não pode surgir repetido.

Implemente a situação em VB.NET utilizando um array de registos e funções/procedimentos.

 Structures and Other Programming Elements (Visual Basic)


EXERCÍCIO 7

 

Pretende-se criar uma aplicação que gere uma relação de turma. Para cada aluno é indicado o número, o nome a a localização (caminho+nome_do_ficheiro) da fotografia.

Ao registar o aluno os dados surgem numa listbox; ao clicar num item da listbox a fotografia do aluno é mostrada.

Desenvolva a solução em VB.NET.

  Como obter o nome completo da imagem? Utilize o objeto OpenDiaglog.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


OpenFileDialog1.ShowDialog()
Label4.Text = OpenFileDialog1.FileName

...
End Sub

 


2. BASES DE DADOS

Uma Base de Dados é um sistema de armazenamento de dados relacionados entre si, de uma forma permanente, num sistema informático, com redundância controlada, acessíveis a um grupo de utilizadores e estruturado sob a forma de ficheiros de dados ou tabelas. Assim, por exemplo, uma lista de endereços, um conjunto de dados sobre clientes ou ainda uma lista organizada de CD’s podem ser consideradas bases de dados.

A Base de Dados (database) pode também ser designada por Banco de Dados (databank). Estes dois termos são sinónimos. Quando falamos de bases de dados, é importante distinguir Dados de Informação. Os Dados são os elementos isolados, significativos, rigorosos e relevantes. São os factos do mundo real. Podem ser vistos como a matéria-prima necessária para um determinado processamento. A Informação é o conjunto de dados, organizados e sujeitos a um tratamento, tornando assim possível a sua utilização num determinado contexto. Os dados não têm qualquer valor e só se transformam em informação quando relacionados, ou interpretados, de alguma forma.

Para uma base de dados deve existir um Administrador. Este é o responsável máximo da base de dados. Cabe-lhe gerir todos os acessos e realizar a coordenação e monitorização do seu uso.

Existe uma grande variedade de classificações para bases de dados, de acordo com o modelo de programação associado. Durante muito tempo, foi usual considerar três principais modelos conceptuais de bases de dados: modelo hierárquico, modelo em rede e modelo relacional. O modelo mais utilizado é o modelo relacional, que se baseia num conjunto de operações lógicas de álgebra e cálculo relacionais. Neste modelo, as bases de dados são constituídas por tabelas e relacionamentos entre elas. A correcta estruturação das tabelas e seus relacionamentos garantirá, conjuntamente com um sistema de gestão de bases de dados relacional, um funcionamento coerente de uma base de dados, relativamente a operações típicas como consulta, actualização, adição e eliminação.


3. Sistemas de Gestão de Base de Dados

Para gerir as bases de dados foram criadas ferramentas do tipo SGBD – Sistema de Gestão de Bases de Dados. Um sistema de gestão de bases de dados (SGBD) é um programa que disponibiliza todos os serviços básicos relacionados com as bases de dados, como operações de definição de estrutura, manipulação dos dados e controlo dos dados.

Existem diversas escolhas no mercado de SGBD, podendo dividir-se em dois grandes grupos:

Grande porte – Exemplos: ORACLE, Microsoft SQL Server, MySQL, Ingres, Informix e DB2.
Uso pessoal (doméstico) e/ou de pequenas empresas – Exemplos: Dbase, FoxPro, Microsoft Access e OpenOffice Base.

O PHP e as Bases de Dados - O PHPMYADMIN


4. Base de Dados Relacional

O termo base de dados está intimamente associado à noção de “uma colecção de informação”. De um ponto de vista mais teórico pode-se afirmar que uma base de dados é um conjunto estruturado de informação. Uma base de dados é uma colecção de dados formalmente definida, informatizada, partilhável e sujeita a um controlo central.

Uma base de dados é uma colecção de dados inter-relacionados com múltiplas utilizações.

Uma base de dados relacional é um sistema de gestão de informação relativamente complexo.

Se a função de uma base de dados fosse simplesmente a de armazenar dados, a sua organização seria relativamente simples.

O Modelo relacional organiza os dados em tabelas logo a base de dados é composta por um conjunto de tabelas e associações entre as tabelas. A associação entre os dados é o ponto forte dos sistemas relacionais.
As tabelas são formadas por linhas e colunas onde figuram os dados. Numa base de dados relacional os dados estão todos representados como valores nas colunas das tabelas.


5. Conceitos do Modelo Relacional

• O modelo relacional representa os dados numa BD como uma coleção de tabelas (relações);
• Cada tabela terá um nome, que será único, e um conjunto de atributos (representados pelas colunas) com os seus respectivos nomes e domínio:

• Todos os valores de uma coluna são do mesmo tipo de dados;
• O nome de cada coluna é chamado de atributo;
• A cada domínio está associado um tipo de dados ou formato.

• Na terminologia de BD Relacional uma linha é chamada tupla, um nome de coluna é chamado de atributo e cada tabela é chamada de relação;
• Cada linha da tabela (tupla) tem um conjunto de atributos ou atributo chamado de campo chave que a identifica de maneira única na relação;
• Nenhum valor de chave primária poderá ser NULO.


Domínios, Relações e Atributos

O modelo relacional baseia-se em três conceitos básicos: domínio, relação e atributo.

O domínio é um conjunto de valores que possuem determinadas propriedades em comum; ao conjunto de todos os valores possíveis para um determinado atributo dá-se o nome de domínio. O domínio engloba dados atómicos ou simples, porque não podem sofrer mais nenhuma decomposição.
Uma relação representa um conjunto de objectos dum tipo particular. Os objectos que pertencem à relação são, no essencial, os elementos que obedecem às propriedades da relação. Assim, a relação é um conjunto com propriedades próprias, em que os seus elementos se designam por tuplas ou linhas.
Uma relação representa um conjunto de objectos dum tipo particular. Os objectos que pertencem à relação são, no essencial, os elementos que obedecem às propriedades da relação. Assim, a relação é um conjunto com propriedades próprias, em que os seus elementos se designam por tuplas ou linhas.

Chave Primária e Chave Estrangeira

Cada tabela deve incluir um campo ou conjunto de campos que identifique de forma exclusiva, cada registo (linha) armazenado na tabela. Esse(s) campo(s) são chamado(s) de chave primária da tabela.

Desta forma, com a chave primária cria-se uma identificação única, o que dá total segurança para que aplicações possam aceder, alterar e excluir dados sem correr o risco de apagar ou alterar os registos (linhas) errados.

A chave estrangeira ocorre quando um atributo de uma relação é chave primária noutra relação.
Por exemplo:


6. Vantagens (e Desvantagens) dos Sistemas de Base de Dados

Resposta rápida aos pedidos de informação. Como os dados estão integrados numa única estrutura (a base de dados) a resposta a questões complexas processa-se com rapidez.
Acesso múltiplo. O software de gestão de base de dados permite que os dados sejam acedidos de diversíssimas maneiras. Nomeadamente, os dados podem ser visualizados através de pesquisas sobre qualquer um dos campos da tabela.
Flexibilidade. Em consequência da independência entre dados e programas, qualquer alteração num desses elementos não implica modificações drásticas no outro.
Integridade da informação. Dada a absoluta exigência de não permitir a redundância, as modificações de dados são feitas num só sítio, evitando-se assim possíveis conflitos entre diferentes versões da mesma informação.
Melhor gestão da informação. Em consequência da localização central dos dados, sabe-se sempre como e onde está a informação.

A principal, e mais significativa, desvantagem dos sistemas de gestão de base de dados é o seu custo, não tanto em termos de preço do software de base, mas fundamentalmente em despesas de desenvolvimento. É um tipo de software altamente sofisticado que requer, para o seu desenho e desenvolvimento, pessoal com uma formação adequada.
Os custos resultantes duma má conceptualização são enormes. A construção duma base de dados deficiente tem consequências nefastas numa organização. Tanto em custos directos, como em termos psicológicos, ficando na memória da organização uma animosidade contra as “geniais” inovações tecnológicas.


7. Conceptualização de Modelos de Dados

Uma base de dados é um modelo das necessidades em informação do utilizador final, ou seja, do sistema real.

Os modelos de dados não se referem apenas a dados. São eles próprios feitos de dados.

O desenvolvimento do modelo conceptual é, sem dúvida, o passo mais importante na criação de uma base de dados relacional. Este passo deve ser sempre a primeira etapa do projeto.

O esquema conceptual deve obedecer são as seguintes propriedades:

1. Simplicidade
Simplicidade compreende a facilidade de se deixar compreender e manipular, devendo obedecer a algumas condições:
• O número de objectos básicos deve ser pequeno.
O esquema conceptual deve ser construído com recurso a somente meia dúzia de conceitos e objectos.
• Não se devem misturar nem agrupar os conceitos.
Para que um conceito seja claro não deve ser utilizado para aglutinar outros objectos ou conceitos.
• A redundância deve ser sempre eficazmente controlada.
Não deve ser permitido que o mesmo facto seja mencionado em dois ou mais lugares. Um facto representa a associação entre uma entidade e alguma das suas propriedades. Por exemplo, a associação entre a batata-semente e o seu preço numa certa data.

2. Base Teórica
Dada a importância deste nível conceptual, é essencial que este tenha como suporte um conjunto sólido de conceitos.
A abordagem relacional satisfaz globalmente todos esses requisitos.
• Toda a informação é representada por um só conceito, a relação. A relação é um conceito familiar ao utilizador - há várias centenas (talvez milhares) de anos que as pessoas utilizam tabelas. A relação é um conceito sólido facilmente manipulável.
• A teoria da normalização (conjunto de normas associadas ao modelo relacional) garante que um mesmo facto não apareça em mais de um sítio.


8. Processo de desenho de uma base de dados

O primeiro passo centra-se na recolha e análise das especificações. Para isso, a equipa de desenvolvimento conduzirá uma série de entrevistas aos utilizadores, e procurará reunir toda a documentação existente sobre as actividades em estudo.
Depois da análise das especificações, o passo seguinte é na direcção da criação de um esquema conceptual da futura base de dados. Este esquema será estabelecido através de um modelo de dados conceptual de alto nível. O esquema conceptual é uma descrição rigorosa das necessidades (em dados e informação) dos utilizadores.
A última etapa consiste na construção física da base de dados através de um sistema de gestão de base de dados.


Modelo ER (Entidade-Relação)

Entidade - é um conjunto de pessoas, lugares, objectos, acontecimentos ou conceitos sobre o qual pretendemos armazenar dados.
Ex.: Alunos, Professores, Cursos, …

Relacionamento - é uma associação entre duas entidades.
Ex.: pertence, lecciona, compra, …

Atributo - Atributo é uma característica específica de uma Entidade.
Ex.: Nome, data de nascimento, morada, telefone, curso, …

Notação:

Num Diagrama E-R as entidades são representadas por retângulos e os relacionamentos por linhas entre esses retângulos. Nos retângulos colocam-se os nomes das diferentes entidades.

ENTIDADE

RELACIONAMENTO 

 

 A notação 1:1, 1:M e M:N caracteriza o tipo de relacionamento existente entre duas entidades.


Tipos de Relacionamentos



Caracterização das Entidades

Atributos: elementos ou propriedades que caracterizam uma entidade.

Domínio de um atributo: conjunto de valores possíveis para esse atributo.

Chave Primária: atributo(s) que identificam de forma unívoca cada instância de uma entidade.

Chave Estrangeira: atributo(s) cujo valor coincide com a chave primária de outra entidade.


Passos para construir um ER

1. Identificar as Entidades
2. Para cada Entidade identificar os seus atributos e definir a chave primária
3. Identificar todos os relacionamentos entre as Entidades
4. Validar o modelo obtido e repetir este processo desde o 1º passo, se necessário.


Normalização de dados

Trata-se de uma técnica de decomposição de tabelas que visa a simplificação das estruturas de dados de forma evitar as chamadas anomalias de atualização.

Formas Normais:
Primeira Forma Normal (1FN)
Segunda Forma Normal (2FN)
Terceira Forma Normal (3FN)

1FN

Uma relação está na 1ª Forma Normal se
. Cada atributo contém apenas valores atómicos.
. Não há conjuntos de atributos repetidos descrevendo a mesma característica.

Exemplo de relações que não estão na 1ºForma Normal:

Nome Endereço NIF Cursos
Artur Covilhã 123456789 Programador
Ana Fundão 222222222 Operador, Programador
Carlos Covilhã 222333444 Analista, Programador, Operador

 Na 1FN retiram-se os grupos repetitivos;

Observe:

R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, (Cod_produto, Desc_produto, Preco_produto, Quantidade)* )

Nesta relação constata-se que na nota de encomenda existem várias linhas de produtos:

Encomendas
N_nota_enc
Cod_cliente
Nome_cliente
Morada_cliente
Produtos*
Cod_produto
Desc_produto
Preço_produto
Quantidade

 (decompor a estrutura para obter a 1FN)
1FN: retirar grupos repetitivos e definir os campos chave

 Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente)

Linha_nota_enc (N_nota_encCod_produto, Desc_produto,Preco_produto, Quantidade)

 Ambas as relações estão na 1ª Forma Normal (não têm grupos repetitivos).

 

2FN

Na segunda forma normal removem-se as dependências funcionais: 
quando alguns dos atributos dependem apenas de parte da chave e não da chave completa.

 Observe:

Linha_nota_enc (N_nota_encCod_produto, Desc_produto,Preco_produto, Quantidade)

Desc_produto depende exclusivamente Cod_produto e não da nota de encomenda; o preço gera subjectividade;
considerando que se trata do preço de compra, permanece na relação se se trata do preço de venda do produto então deve ser transportado para a tabela produtos.

 (decompor a estrutura para obter a 2FN)
2FN: retirar dependencias funcionais

 Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente)

Linha_nota_enc (N_nota_encCod_produto, Quantidade)

Produto (Cod_produto, Desc_produto, Preco_produto)

 Em conclusão uma relação está na 2ª forma normal se está na 1ª FN e os atributos que não são chave dependem  da totalidade da chave.

 Para vermos se uma relação está na 2FN:
1 – Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for constituída por todos os atributos da relação, então podemos concluir que está na 2FN.
2 – Se a chave for composta (tiver mais do que um atributo) verificamos se há atributos que não são chave e que dependem apenas de parte da chave. Se não houver, então está na 2FN.
Se houver, então decompor de acordo com o esquema anterior.

 

3FN

Na terceira forma normal removem-se as dependências transitivas: quando alguns dos atributos não chave apresentam dependências entre si.

 Observe:

Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente)

O Nome_cliente e a Morada_cliente dependem exclusivamente do Cod_cliente.

 (decompor a estrutura para obter a 3FN)
3FN: retirar dependencias transitivas

 Nota_de_enc ( N_nota_enc, Cod_cliente)

Cliente ( Cod_cliente, Nome_cliente, Morada_cliente)

Linha_nota_enc (N_nota_encCod_produto, Quantidade)

Produto (Cod_produto, Desc_produto, Preco_produto)

 Em conclusão uma relação está na 3FN se está na 2FN e nenhum dos atributos não chave depende de outro também não chave.



9. O phpMYADMIN

O phpMyAdmin é uma ferramenta gratuita, escrita em PHP, e que permite de forma muito simples fazer a administração das bases de dados (MySql) através do browser.

Na atualidade a maior parte dos sites usam bases de dados MySQL para guardar os seus conteúdos. Para gerir a base de dados MySQL dos sites usa-se na maioria das vezes a aplicação web  phpMyAdmin, que está que está disponível em 99,9% dos servidores de alojamento web.

phpMyAdmin é muito utilizado pelos webmasters. Está disponível em 54 idiomas. É uma ferramenta obrigatória em quase todos os web hostings e também é incluída com os pacotes de servidores offline, como por exemplo o XAMPP. Com o phpMyadmin é possível:

O phpMYADMIN requer um servidor web e um servidor de base de dados. Se for instalado com o pacote XAMPP o servidor web é o APACHE e o servidor de base de dados é o MySQL.


SERVIDOR WEB - APACHE

Sempre que um utilizador acede a um site é enviada uma requisição ao servidor que aloja o site. O servidor baseado nestas requisições responde à solicitação com algum serviço. Um servidor é um computador disponibilizado numa rede com o objetivo de prover serviços para outros hostsNo caso de sites trata-se de um servidor Web.

O apache opera no modelo cliente-servidor, ou seja, o servidor web Apache, recebe as requisições  do cliente (browser) e responde ao cliente em codificação HTML.  O servidor web  interpreta a codificação HTML e não interpreta o código PHP Ao receber uma solicitação .php o servidor aciona o Interpretador PHP que processa as solicitações do código PHP.

 

SERVIDOR WEB - MySQL

O MySQL é um sistema de gestão de base de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. É atualmente uma das bases de dados mais populares, com mais de 10 milhões de instalações pelo mundo.

O sucesso do MySQL deve-se à fácil integração com o PHP incluído, quase que obrigatoriamente, nos pacotes de hospedagem de sites da Internet oferecidos atualmente.

Características

Portabilidade (suporta praticamente qualquer plataforma atual);
Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, Python, Perl, PHP, ASP e Ruby)
Excelente desempenho e estabilidade;
Pouco exigente quanto a recursos de hardware;
Facilidade de uso; É um Software Livre com base na GPL;
Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid... Suporta controle transacional;
Suporta Triggers;
Suporta Cursors (Non-Scrollable e Non-Updatable);
Suporta Stored Procedures e Functions;
Replicação facilmente configurável;
Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc.


10. phpMYADMIN e comandos básicos do SQL


CREATE DATABASE [IF NOT EXISTS] nome_bd;


CREATE TABLE nome _ da_ tabela 

campo1 tipo_do_campo, 
campo2 tipo_do_campo,
PRIMARY KEY (campo1) 
);


INSERT INTO nome _ da_ tabela (campo1,campo2,..) Values (valor1,valor2,..)


SELECT campo1,campo2,.. FROM nome_tabela


SELECT campo1,campo2,.. FROM nome_tabela WHERE campo operador valor



EXERCÍCIO 8

 

1. Crie no MYSQL uma base de dados designada por "bd_psi".

2. Adicione a seguinte tabela à BD:

3. Introduza os seguintes registos na tabela "modulos":

4. Escreva e execute as instruções SQL para:

4.1 Obter uma listagem de todos os módulos;

4.2 Obter os dados do módulo 1;

4.3 Obter os dados do módulo 4;

4.4 Mostrar os módulos com 20 horas;

4.5 Mostrar os módulos com 30 horas.

5. Acrescente os seguintes registos à tabela "modulos":

6. Escreva e execute as instruções SQL para:


6.1 Obter uma listagem de todos os módulos com mais de 20 horas;
6.2 Mostrar os módulos com as horas compreendidas entre 30 e 45.

UPDATE nome_tabela SET campo1=valor1,campo2=valor2,... WHERE campo operador valor;

 

EXERCÍCIO 9

 

1. Escreva e execute as instruções SQL para:

1.1 Alterar a designacao do modulo "Estruturas de dados III" para "Projeto".

1.2 Alterar o total_horas de todos os módulos com 20 horas para 25 horas.



DELETE FROM nome_tabela WHERE campo operador valor;

 


11. OPERADORES LÓGICOS


12. SQL: FUNÇÕES DE AGREGAÇÃO

ESTUDO de CASO

AVG - média de valores

determinar a média do preço dos produtos


SUM - soma de valores

determinar o total em stocks (quantidade)


COUNT - contar

determinar quantos produtos existem na loja


MAX - máximo

determinar o maior preço