Você está na página 1de 46

Conceitos básicos e definições sobre programação

Para começar a entender o que é a programação, primeiro temos que ter certos conhecimentos sobre tudo o que a rodeia.

Começaremos com umas definições um pouco técnicas, mas que porém são
imprescindíveis para a aprendizagem.

Tecnologia

Dentro do campo que nos interessa, a tecnologia tem o objetivo de eliminar as


tarefas repetitivas, facilitando o trabalho e fazendo-o mais eficiente assim como
aumentando a produtividade e os benefícios da empresa.

Programação

A programação é uma das etapas mais importantes do ciclo de vida de um projeto


(explicaremos mais adiante o que é este termo), e requer um método de trabalho.
A programação é o resultado de tal trabalho.
A programação é o instrumento que permite a execução das tarefas automatizadas
de um sistema informático.
As ferramentas que utilizaremos para programar são as linguagens de
programação, através das quais codificaremos os programas.

Programa

Conjunto de instruções entendíveis pelo computador que permitem realizar um


trabalho ou resolver um problema.
Um programa deve ser finito, ou seja, tem que ter um início e um fim. Tem que
estar bem confeccionado para que, ao introduzir um dado, saia uma solução e se,
se voltasse a introduzir o mesmo dado, saísse de novo a mesma solução.

Metodologia da programação

Entende-se como metodologia da programação ao conjunto de normas, métodos e


anotações que nos indicam a forma de programar.
Cada linguagem de programação segue uma metodologia diferente.

Linguagem de programação
É um conjunto de regras semânticas assim como sintáticas que os programadores
usam para a codificação de instruções de um programa ou algoritmo de
programação.
Existem várias linguagens de programação.

Ambiente de programação ou ambiente de desenvolvimento

É o conjunto de ferramentas utilizadas para a elaboração de um programa.

Recursos

Conjunto de componentes hardware que utilizaremos para a elaboração de um


programa (cpu, disco rígido…..).

Uma vez conhecidos os conceitos básicos necessários para a aprendizagem da


programação podemos começar a ver os diferentes tipos de linguagens de
programação.
Tipos de linguagens de programação
Existem dois tipos de linguagens claramente diferenciadas; as linguagens de baixo nível e as de alto nível.

Por Sara Alvarez Langa

Publicado em: 14/12/06

Valorize este artigo:


3 votos
O computador só entende uma linguagem conhecida como código binário ou código
máquina, consistente em zeros e uns. Ou seja, só utiliza 0 e 1 para codificar
qualquer ação.

As linguagens mais próximas à arquitetura hardware se denominam linguagens de


baixo nível e as que se encontram mais próximas aos programadores e usuários se
denominam linguagens de alto nível.

Linguagens de baixo nível

São linguagens totalmente dependentes da máquina, ou seja, que o programa que


se realiza com este tipo de linguagem não pode ser migrado ou utilizado em outras
máquinas.

Ao estar praticamente desenhado a medida do hardware, aproveitam ao máximo as


características do mesmo.

Dentro deste grupo se encontram:

• A linguagem máquina: esta linguagem ordena à máquina as operações


fundamentais para seu funcionamento. Consiste na combinação de 0's e 1's
para formar as ordens entendíveis pelo hardware da máquina.
Esta linguagem é muito mais rápida que as linguagens de alto nível.
A desvantagem é que são bastante difíceis de manejar e usar, além de ter
códigos fonte enormes onde encontrar uma falha é quase impossível.
• A linguagem Assembler é um derivado da linguagem máquina e está
formada por abreviaturas de letras e números chamados mnemotécnicos.
Com o aparecimento desta linguagem se criaram os programas tradutores
para poder passar os programas escritos em linguagem assembler a
linguagem máquina. Como vantagem com respeito ao código máquina é que
os códigos fontes eram mais curtos e os programas criados ocupavam
menos memória. As desvantagens desta linguagem continuam sendo
praticamente as mesmas que as da linguagem assembler, acrescentando a
dificuldade de ter que aprender uma nova linguagem difícil de provar e
manter.

Linguagens de alto nível

São aquelas que se encontram mais próximas à linguagem natural que à linguagem
máquina.
Estão dirigidas a solucionar problemas mediante o uso de EDD's.

Nota: EDD's são as abreviaturas de Estruturas Dinâmicas de Dados, algo muito utilizado em
todas as linguagens de programação. São estruturas que podem mudar de tamanho durante a
execução do programa. Permitem-nos criar estruturas de dados que se adaptem às
necessidades reais de um programa.
Trata-se de linguagens independentes da arquitetura do computador. Sendo assim,
à princípio, um programa escrito em uma linguagem de alto nível, pode ser
migrado de uma máquina a outra sem nenhum tipo de problema.

Estas linguagens permitem ao programador se esquecer completamente do


funcionamento interno da máquina/s para a que está desenhando o programa.
Somente necessita de um tradutor que entenda o código fonte como as
características da máquina.

Costumam usar tipos de dados para a programação e existem linguagens de


propósito geral (qualquer tipo de aplicação) e de propósito específico (como
FORTRAN para trabalhos científicos).

Linguagens de Médio nível

Trata-se de um termo não aceito por todos, porém certamente vocês já devem ter
escutado. Estas linguagens se encontram em um ponto médio entre as duas
anteriores. Dentro destas linguagens poderia se situar C já que pode acessar aos
registros do sistema, trabalhar com endereços de memória, todas elas
características de linguagens de baixo nível e ao mesmo tempo realizar operações
de alto nível.

Gerações

A evolução das linguagens de programação pode ser dividida em 5 etapas ou


gerações.

• Primeira geração: Linguagem máquina.


• Segunda geração: Criaram-se as primeiras linguagens assembler.
• Terceira geração: Criam-se as primeiras linguagens de alto nível. Ex: C,
Pascal, Cobol…
• Quarta geração: São linguagens capazes de gerar código por si só, são os
chamados RAD, com o qual pode-se realizar aplicações sem ser um expert
na linguagem. Aqui também se encontram as linguagens orientadas a
objetos, tornando possível a reutilização de partes do código para outros
programas. Ex: Visual, Natural Adabes…
• Quinta geração: Aqui se encontram as linguagens orientadas à inteligência
artificial. Estas linguagens ainda estão pouco desenvolvidas. Ex: LISP
Processo de tradução das linguagens de programação
Explicamos o processo mais importante na hora de fazer funcionar um programa realizado em linguagens de alto e médio nível.

Por Sara Alvarez Langa

Publicado em: 14/12/06

Valorize este artigo:


1 voto
Quando programamos em linguagens de alto nível, o que estamos fazendo na
verdade é o código fonte desse programa.

Este código fonte deve ser traduzido à binário para que as instruções que contém
possam ser entendidas e executadas pela máquina.
Para isto existe um programa encarregado de realizar a tradução, chamado
tradutor da linguagem.

Estes tradutores podem ser de dois tipos:

Assembler

São os encarregados de traduzir os programas escritos na linguagem assembler à


linguagem máquina.

Compiladores

São programas que lêem o código fonte e o traduzem ou convertem a outra


linguagem. Estes programas lhe mostram os erros existentes no código fonte.

Etapas do processo de compilação:

1. Edição. Esta fase consiste em escrever o programa empregando alguma


linguagem e um editor. Como resultado nos dará o código fonte de nosso
programa.
2. Compilação. Nesta fase se traduz o código fonte obtido na fase anterior a
código máquina. Se não se produz nenhum erro se obtém o código objeto.
No caso de erros o compilador os mostraria para nos ajudar a corrigi-los e
se procederia a sua compilação de novo, uma vez corrigidos.
3. Linkado. Esta fase consiste em unir o arquivo gerado na fase dois com
determinadas rotinas internas da linguagem, obtendo o programa
executável.
Existem dois tipos de linkados:

o Linkado estático: Os binários das bibliotecas se acrescentam aos


nossos binários compilados gerando o arquivo executável.
o Linkado dinâmico: não se acrescentam as bibliotecas ao nosso binário
e sim que fará que se carreguem na memória as bibliotecas que
nesse momento se necessitem.

Uma vez traduzido, compilado e linkado o arquivo está pronto para sua execução
onde também poderão surgir problemas e falhas, para os quais teríamos que voltar
a realizar todo o processo anteriormente citado, de modo que possam ser
corrigidos.

Por este motivo é importante realizar numerosas provas em tempo de execução


antes de apresentar o programa ao cliente.

Outro sistema para a execução de nosso código fonte é mediante o uso de


intérpretes (estes não se encontrariam dentro dos tradutores).

Intérpretes

Os intérpretes realizam a tradução e execução de forma simultânea, ou seja, um


intérprete lê o código fonte e vai executando-o ao mesmo tempo.

As diferenças entre um compilador e um intérprete basicamente são:

• Um programa compilado pode funcionar por si só enquanto que um código


traduzido por um intérprete não pode funcionar sem este.
• Um programa traduzido por um intérprete pode ser executado em qualquer
máquina já que, cada vez que se executa o intérprete, tem que compila-lo.
• Um arquivo compilado é muito mais rápido que um interpretado.
Manejando bits
Importância do manejo dos bits no mundo da programação.

Por Emmanuel García De Caro

Publicado em: 08/1/07

Valorize este artigo:


1 voto
Como bem é conhecido um Byte é um agrupamento de 8 bits respectivamente,
cada bit faz parte do sistema de numeração Binário a quem deve seu nome, ou
seja, de base 2 em outras palavras pode armazenar valores compreendidos entre 0
y 1.

Se lembramos que um sistema de numeração se conforma de um conjunto de


regras e princípios que permite expressar ou definir um número válido dentro do
mesmo, podemos afirmar que a maioria deles (Sistemas: binários, octanos,
decimais, hexadecimais, etc..) se pueden representar mediante un polinomio
sencillo que nos permitirá entender su lógica:

Número = N*basen + N*basen-1+ N*basen-2 até que a base fique elevada à 0


sempre e quando não contiver decimais o "Número"
Onde Número é o valor expressado dentro do sistema, base como seu nome o
indica a base do sistema (se é binário : 2 , octano: 8, decimal: 10, hexadecimal :
16, etc…) e n a posição que ocupa o digito "N" dentro do Número.

Exemplos em sistema decimal (base:10):

4
18598 1*10 + 8*10 3 + 5*10 2 + 9*10 1 + 8*10 0

Descompomos o valor expressado "18598" multiplicando-o pela base do sistema


(10) elevada à posição do dígito na expressão.

O número 1 encontra-se iniciando a expressão e salva em seu interior 10 000 (Para


comprova-lo: se eliminarmos o 1 o resultado será (18598-10 000)) portanto 10
000 é igual a 10 4 (1*104)=10 000 + (8*103)= 8 000…

No sistema de numeração binário a mesma fórmula é aplicável:

1
10 (número binario) = 1*2 + 0*2 0

O que indica que 10, no sistema decimal é igual 2, na verdade, no sistema de


numeração binário pode-se definir qualquer número inteiro maior ou igual a 0,
entretanto a estrutura de armazenamento Byte só foi desenhada desde sua origem
para armazenar até 256 porque inclui como máximo 8 bits (28 = 256) (lembremos
que leva-se em conta o 0 pelo qual 255 equivalerá a 256) e foi escolhido este valor
como máximo porque é a totalidade de caracteres disponível na tabla ASCII, que
inclui todos os caracteres válidos dentro de um computador, para comprovar isto
podemos salvar um caractere em um arquivo sem formato e como resultado
teremos que sempre ocupará 1 byte, se colocamos 2 caracteres o tamanho do
arquivo será igual a 2 bytes. O que justifica que 1 byte = 8 bits = pode armazenar
até 256. e 1 bit é a mínima unidade na que se pode armazenar informação.
Exemplo: o tipo booleano (bool) ocupa na memória 1 bit, portanto TRUE = 1
FALSE=0.

Por esta razão a maioria dos hardwares com capacidade de armazenamento tais
como Discos rígidos, memórias, e outros dispositivos; sua capacidade sempre será
divisível entre 2 , assim como as demais estruturas de armazenamento ( Kb, Mb,
Gb, Tb, etc)

Como referia anteriormente, a tabela ASCII inclui todos os caracteres válidos


dentro do computador, desde todas as letras em minúsculas e maiúsculas, números
e outros especiais, estes últimos utilizados em sua maioria como delimitadores ou
separadores guia dentro de um formato de arquivo de conteúdo binário (PDF, DOC,
EXE, DLL, OCX, ENTRE OUTROS) Exemplo de delimitadores: O endereço IP inclui 4
pares de cujo valor máximo é 255 para poder representa-lo em decimal se faz mais
que necessário, obrigatório o uso de delimitadores pelo qual se emprega um ".
(Ponto)" de modo tal que 255.255.255.255, para reduzir esta informação a 4 bytes
poderemos acudir à tabela ASCII.

Por exemplo o caractere "A" dentro da tabela ASCII no sistema decimal ocupa 64,
podemos executar uma função amplamente reconhecida por linguagens de
programação entre eles (Delphi, C++, VB, Php, etc) chamada ORD que produzirá
como resultado de ord(64) "A" se pelo contrário executarmos chr('A') o resultado
será 64 em decimal, o qual representado em binário equivaleria a "1000000",
embora 64 não ocupe fisicamente os 255 (1 byte completo) seu tamanho em disco
sempre será 1 byte, porque a maioria de sistemas operacionais e hardware desde
sua ensambladura está orientados para reservar um mínimo de espaço em
memória e em disco levando em conta que esse valor pode ser modificado a 255
(máximo) ou 0 (mínimo) em qualquer momento.

Portanto podemos dizer que um bit tem um valor de acordo com sua posição ou
localização e para encontrar esse valor só temos que descompor 255.

128 62 32 16 8 4 2 1
1 2 3 4 5 6 7 8(bits)

Como comentávamos anteriormente o bit se conforma de 0 e 1 respectivamente


portanto afirmaremos a partir de agora que 0 É IGUAL A FALSO (false) E 1 É IGUAL
A VERDADEIRO (true) se tivermos um conjunto de 8 bits o somaremos segundo
sua posição, sempre e quando o bit for VERDADEIRO, ou seja, seu conteúdo for
igual a 1, exemplo: dado os bits "10111011" para converte-lo a decimal aplicamos
a tabela:

128 62 32 16 8 4 2 1
1 0 1 1 1 0 1 1

E posteriormente, somamos somente os valores que são "VERDADEIROS" então:


128+32+16+8+2+1=187 Parabéns! 10111011=187!, então, podemos dizer que
para armazenar 256 necessitaremos que os 8 bits sejam verdadeiros, ou seja, 8
bits e já teremos nosso byte.

Para fazer o processo contrário, ou seja, de decimais a binário, só temos que


descompor o decimal dividindo-o sempre entre 2 até que o valor seja igual a 1, o
agrupamento dos resíduos obtidos será nosso valor binário; obviamente os resíduos
sempre serão (0 ou 1).

Os bits são amplamente utilizados para codificar dados, comprimir informação, etc.
Por exemplo, o formato de imagens desenhado por Microsoft (.BMP) calcula a área
da imagem, ou seja, base por altura ou o que é igual à largura pela altura, o qual
assume como a quantidade de pontos disponíveis, estes pontos por sua vez
armazenam uma cor hexadecimal de 3 pares conhecida como RGB que armazena
as cores VERMELHO, VERDE E AZUL, pelo qual para o armazenamento da cor
emprega 3 bytes (255,255,255) e os recebe com ASCII, por cada ponto , o que
indica se uma imagem é de 10 px x 10 px empregará 300 bytes para armazenar os
pontos e outros adicionais que salvam informação de propriedades e características
de essencial importância. Utilizando bytes delimitadores ou separadores no caso de
não conhecer o final do valor, ou seja, se a quantidade de bytes a empregar pelo
cabeçalho do formato (que contém informação) se desconhece ou pode variar
dependendo de fatores, se faz indispensável o uso de delimitadores (ASCII
DEFINIDOS COMO DELIMITADORES), se pelo contrário sempre se situará entre os
bytes 10 e 20, por exemplo (não será necessário). Por tal motivo quando lemos um
arquivo (com um programa desenvolvido por nós) devemos especificar quantos
bytes leremos por cada seqüência, no caso das cores dos formato (BMP) bastará ler
de 3 em 3, cabe destacar que um arquivo pode ser lido até 1024 ou seja 1 KB de
seqüência que equivale a uma linha de informação, a partir dessa base foram
desenhados mecanismos de compreensão que agrupa os bits repetido em matrizes
ou arrays.

Para tornar possível este manejo existem alguns operadores similares aos de lógica
( OR, AND, NOT, XOR, ETC…) melhor conhecidos como operadores bit a bit.

Deslocando bits:

Podemos defini-lo como a ação de transportar bytes de um extremo da expressão a


outro, como a expressão está conformada por 2 só se pode fazer em dois sentidos,
esquerda e direita.

a. Deslocando bits à esquerda (<<)


Consiste em mover a quantidade de bit indicada na expressão, da esquerda
à direita, esta operação equivale a multiplicar por 2.

Por exemplo:
16 <<2 deslocaremos 2 bits da esquerda à direita
16 em binário equivale a 00010000 pelo qual moveremos os dois primeiros
bits à parte de atrás do número (direita) de tal modo que ficará 01000000 o
qual equivale a 64.

Portanto se multiplicamos
(16*2)=32 (32*2)=64
1 bit 2 bits
b.
c. Deslocando bits à direita (>>)
Consiste em mover a quantidade de bit indicada na expressão, da direita à
esquerda, esta operação equivale a dividir por 2.

Por exemplo:

128 >>4 deslocaremos 4 bits da direita à esquerda.


128 em binário é igual a: 10000000, moveremos os últimos 4 bits à parte
inicial ( da direita a esquerda), o resultado será 00001000 cujo valor é igual
a8

portanto se dividimos
(128 / 2)=64 (64/2)=32 (32/2)=16 (16/2)=8
1 bit 2 bits 3 bits 4 bits
d.
Emprega-se 2 por ser a base do sistema de numeração binário.

Operador de lógica OR |

Lembraremos que chamaremos 0 em binário False e 1 True, então o operador OR

Avaliará as expressões e produzirá TRUE ou seja, 1 só se um dos 2 bits a comparar


for igual a 1. Exemplo:

Expressão: 5 | 12
5 em binário é igual a 00000101
12 em binário = 00001100
Resultado : 00001101 = 13

Só se um par dos bits a comparar for 1 o resultado será 1, se comporta


exatamente igual a uma condição: (true || false) é igual a true; (false || false) é
igual a false, sua razão se deve a que a condição de dois ou mais argumentos se
transforma sempre em binários para realizar a comparação utilizando o processador
e a memória de computador.

Operador de lógica AND &

Só se o par de bits a comparar for igual a 1 o resultado será 1.

Expressão: 5 & 12
5 em binário é igual a 00000101
12 em binário = 00001100
Resultado : 00000100 = 4

É parecido a (TRUE && TRUE) é igual a true, (False && True) é igual a false.

Operador XOR ^

Só se o par de bits a comparar for diferente será igual a 1.


Expresión: 5 ^ 12
5 em binário é igual a 00000101
12 em binário = 00001100
Resultado : 00001001 = 9

Similar a (TRUE XOR FALSE) es igual a true, ( TRUE XOR TRUE) es igual a false.

Operador Not ~

Só se o bit a comparar for igual a 0 (False) será igual a 1.


Expressão: ~5
5 em binário é igual a 00000101
Resultado : 00000010 = 2

Similar a (!FALSE) é igual a true

Importância do manejo dos bits

Como programador darrei uma opinião muito pessoal, torna-se indispensável na


construção de aplicações em grande escala o desenvolvimento de formatos
pessoais baseados em esquemas que armazenam a informação empregada de
modo comprimido para a utilização de um ou outros recursos de nossa aplicação,
permitindo ao usuário final maior comodidade y segurança durante o transporte da
informação e oferecendo-lhe a capacidade de torna-las compatíveis com outras
aplicações, e deixar a um lado (dependendo do objetivo) o típico uso de banco de
dados que requerem recursos adicionais do computador ademais de
interpretadores, etc. Considero que a informação redigida contribui
consideravelmente a encaminhar seus esforços nessa direção.

Conclusão:

Podemos dizer que o computador sem software só tem capacidades para fazer
operações aritméticas simples (somas, subtrações, multiplicação, etc…)
E é o software que valendo essas simples operações com processos como os
explicados anteriormente, pode criar a interface como da que hoje desfrutamos em
matéria de Sistemas Operacionais, todas as linguagens desde as mais altas como
Php até as mais baixas como Assembler passam por binário, cada vez que
movemos o Mouse isso está produzindo um processamento de dados binários,
enfim, oriente seus esforços como programador a reduzir ao máximo o consumo de
recursos, certamente você conseguirá uma soma consumindo menor quantidade de
recursos que o habitual.

Tipos de programação
Existe várias classes de programação, dependendo dos métodos utilizados e as técnicas empregadas.

Por Sara Alvarez Langa


Publicado em: 22/1/07

Valorize este artigo:


1 voto
Os tipos ou técnicas de programação são bastante variados, embora pode ser que
haja muitos leitores que só conheçam uma metodologia para realizar programas.
Na maioria dos casos, as técnicas centram-se em programação modular e
programação estruturada, porém existem outros tipos de programação.
Explicaremos isso melhor ao longo do artigo.

Programação estruturada (PE)

A programação estruturada é composta por um conjunto de técnicas que foram se


evoluindo aumentando consideravelmente a produtividade do programa reduzindo
o tempo de depuração e de manutenção do mesmo.

Esta programação estruturada utiliza um número limitado de estruturas de


controle, reduzindo assim consideravelmente os erros.

Esta técnica incorpora:

• Design descendente (top-dow): o problema se descompõe em etapas ou


estruturas hierárquicas.
• Recursos abstratos (simplicidade): consiste em descompor as ações
complexas em outras mais simples capazes de ser resolvidas com maior
facilidade.
• Estruturas básicas: existem três tipos de estruturas básicas:
o Estruturas seqüenciais: cada ação segue a outra ação
seqüencialmente. A saída de uma ação é a entrada de outra.
o Estruturas seletivas: nestas estruturas avaliam-se as condições e em
função do resultado das mesmas realizam-se umas ações ou outras.
Utilizam-se expressões lógicas.
o Estruturas repetitivas: são seqüências de instruções que se repetem
um número determinado de vezes.

As principais vantagens da programação estruturada são:

• Os programas são mais fáceis de entender


• Reduz a complexidade das provas
• Aumenta a produtividade do programador
• Os programas ficam melhor documentado internamente.

Um programa está estruturado se possui um único ponto de entrada e só um de


saída, existem de "1 a n" caminhos desde o princípio até o fim do programa e por
último, que todas as instruções são executáveis sem que apareçam loops infinitos.

Programação modular

Na programação modular consta de várias seções dividas de forma que interagem


através de chamadas a procedimentos, que integram o programa em sua
totalidade.

Na programação modular, o programa principal coordena as chamadas aos módulos


secundários e passa os dados necessários em forma de parâmetros.

Por sua vez cada módulo pode conter seus próprios dados e chamar a outros
módulos ou funções.

Programação orientada a objetos (POO)

Trata-se de uma técnica que aumenta consideravelmente a velocidade de


desenvolvimento dos programas graças à reutilização dos objetos.

O elemento principal da programação orientada a objetos é o objeto.


O objeto é um conjunto complexo de dados e programas que possuem estrutura e
fazem parte de uma organização.
Um objeto contém vários dados bem estruturados e podem ser visíveis ou não
dependendo do programador e as ações do programa nesse momento.

O polimorfismo e a herança são umas das suas principais características e por isso
dedicaremos mais adiante um artigo exclusivamente para tratar destes dois
termos.

Publicamos em CriarWeb.com anteriormente uma explicação do que é a


programação orientada a objetos.

Programação concorrente

Este tipo de programação se utiliza quando temos que realizar várias ações de só
uma vez.

Costuma-se utilizar para controlar os acessos de usuários e programas a um


recurso de forma simultânea.

Trata-se de uma programação mais lenta e trabalhosa, obtendo uns resultados


lentos nas ações.

Programação funcional

Caracteriza-se principalmente por permitir declarar e chamar a funções dentro de


outras funções.

Programação lógica

Costuma-se utilizar na inteligência artificial e em pequenos programas infantis.


Trata-se de uma programação baseada no cálculo de predicados (uma teoria
matemática que permite conseguir que um computador baseando-se em fatos e
regras lógicas, que pode dar soluções inteligentes).

Importância da documentação
Descrevemos os aspectos chaves para o desenvolvimento de uma boa documentação do programa para entregar ao cliente.

Por Sara Alvarez Langa


Publicado em: 09/2/07

Valorize este artigo:


1 voto
A documentação dos programas é um aspecto sumamente importante, tanto no
desenvolvimento da aplicação como na manutenção da mesma. Muita gente não faz
esta parte do desenvolvimento e não se dá conta de que perde a possibilidade da
reutilização de parte do programa em outras aplicações, sem necessidade de
conhecer o código no dedo.

A documentação de um programa começa com a construção do mesmo e finaliza


justo antes da entrega do programa ou aplicação ao cliente. Mesmo assim, a
documentação que se entrega ao cliente terá que coincidir com a versão final dos
programas que compõem a aplicação.

Uma vez concluído o programa, os documentos que se devem entregar são um guia
técnico, um guia de uso e de instalação.

Tipos de documentação

A documentação que se entrega ao cliente se divide claramente em duas


categorias, interna e externa:

• Interna: É aquela que se cria no mesmo código, já pode ser em forma de


comentários ou de arquivos de informação dentro da aplicação.
• Externa: É aquela que se escreve em cadernos ou livros, totalmente alheia à
aplicação em si. Dentro se esta categoria também se encontra a ajuda
eletrônica.

A guia técnica

No guia técnico ou manual técnico se refletem o design do projeto, a codificação da


aplicação e as provas realizadas para seu correto funcionamento. Geralmente este
documento está desenhado para pessoas com conhecimentos de informática,
geralmente programadores.

O principal objetivo é o de facilitar o desenvolvimento, a correção e a futura


manutenção da aplicação de uma forma rápida e fácil.

Este guia está composto por três seções claramente diferenciadas:

• Caderno de carga: É onde fica refletido a solução ou design da aplicação.


Esta parte do guia é unicamente destinada aos programadores. Deve estar
realizado de tal forma que permita a divisão do trabalho.
• Programa fonte: É onde se inclui a codificação realizada pelos
programadores. Este documento pode ter, por sua vez, outra documentação
para sua melhor compreensão e pode ser de grande ajuda para a
manutenção ou o desenvolvimento melhorado da aplicação. Este documento
deve ter uma grande clareza em sua escritura para sua fácil compreensão.
• Provas: é o documento onde se especificam o tipo de provas realizadas ao
longo de todo o projeto e os resultados obtidos.

O guia de uso

É o que comumente chamamos o manual do usuário. Contem a informação


necessária para que os usuários utilizem corretamente a aplicação.
Este documento é feito através do guia técnico, porém se suprimem os tecnicismos
e se apresenta de forma que seja entendível para o usuário que não seja
experiente em informática.

Um ponto a ter em conta em sua criação é que não deve fazer referência a
nenhuma seção do guia técnico e no caso de que faça uso de algum tecnicismo
deve ir acompanhado de um glossário ao final da mesma para sua fácil
compreensão.

O guia de instalação

É o guia que contém a informação necessária para implementar tal aplicação.


Dentro deste documento encontram-se as instruções para o andamento do sistema
e as normas de utilização do mesmo.

Dentro das normas de utilização incluem-se também as normas de segurança,


tanto as físicas como as referentes ao acesso à informação.

Metodologia da programação
Neste artigo e nos seguintes veremos as ferramentas e técnicas que nos ajudam a desenhar algoritmos para a resolução dos problemas
na programação estruturada.

Por Sara Alvarez Langa


Publicado em: 21/2/07

Valorize este artigo:


1 voto
Estruturas de um programa

Um programa vai se dividir em 3 partes claramente diferenciadas:

• processos de entrada
• processo de dados
• processos de saída

Todo programa está constituído por um conjunto de instruções capazes de


administrar um conjunto de dados.

Algoritmos

Um algoritmo é a descrição abstrata de todas as ações que deve realizar um


computador, que nos conduz à solução do problema.
Deve ser conciso e detalhado, assim como finito, porém, sobretudo tem que ser
claro e o mais simples possível.

Ferramentas e técnicas para o desenho de algoritmos

Para o desenho de algoritmos o que mais se utiliza são os diagramas de fluxos.

Diagramas de fluxo

Os diagramas de fluxo são representações gráficas que mediante o uso de símbolos


unidos mediante linhas de fluxo, mostram a seqüência lógica que se deve suceder
para a solução do problema.
Os diagramas de fluxo devem ser independentes da linguagem de programação
empregada, devem ser flexíveis e simples.
Por outro lado têm que estar normalizados com algum padrão como pode ser o ISO
(a nível mundial), ANSI (a nível americano) ou o IEEE ( a nível europeu)

Existem 3 tipos principais de diagramas de fluxos:

• Fluxograma de bloco: Representação gráfica simples com os elementos que


representam a entrada e saída de dados do programa
• Fluxograma padrão: Representação gráfica com seqüências lógicas e
detalhadas de todos os passos a seguir para a resolução do algoritmo.
• Pseudocódigo: Linguagem intermediária entre o natural e o de programação
que representa mediante a palavra, a solução do algoritmo.

Dentro destes três os mais utilizados são os ordinogramas ou pseudocódigos, já


que são os que mais ajudam aos programadores na hora de passar esses
algoritmos às diferentes linguagens de programação.

Nos seguintes artigos aprofundaremos mais em cada um deles e aprenderemos a


construí-los e lê-los para seu posterior passo à linguagem de programação que se
requer.
Fluxogramas
Explicamos o que são, como se constroem e as representações gráficas utilizadas para sua construção.

Por Sara Alvarez Langa


Publicado em: 14/3/07

Valorize este artigo:


1 voto
Um fluxograma é uma representação gráfica que apresenta as entradas e saídas de
dados ao programa.

Os fluxogramas dividem-se em três partes claramente diferenciadas:

• Entrada: que deve aparecer na parte superior da representação gráfica


• Processo: que deve aparecer na parte central da representação gráfica
• Saída: que deve aparecer na parte inferior

Símbolos para os dispositivos de entrada/saída

Desenho Dispositivo Tipo

teclado entrada

monitor saída

disquete Entrada/Saída

Impressora Saída

Discos magnéticos entrada/saída

Símbolos para os dispositivos de processos

Símbolo Processo

Qualquer processo ou operação que realizarmos, salvo as que


operarmos com arquivos.
Classificação de dados em um arquivo

Extração de dados de um arquivo

União de vários arquivos em um só

Datas utilizadas nos fluxos de dados

Setas Função

Linhas de tele-processo

Direção do fluxo de dados

Para entender melhor os fluxogramas temos estes três exemplos:

Fluxograma que reflete a soma de 3 números lidos pelo ecrã, o resultado aparece
na tela

Fluxograma que reflete a atualização de um arquivo de dados (quadro de


funcionários, por exemplo)
Fluxograma que reflete a união de vários arquivos em um só.
Fluxogramas II
Um dos diagramas de fluxos mais utilizado. Muito parecido com o anterior, porém mais detalhado e preciso.

Por Sara Alvarez Langa

Publicado em: 02/4/07

Valorize este artigo:


1 voto
Tratamos de outro diagrama de fluxos que mostra a seqüência lógica e detalhada
das operações que necessitamos para a realização de um programa.

Assim como o o fluxograma visto no capítulo anterior, este também deve ser
independente da linguagem de programação que utilizemos.

Estrutura do fluxograma

Este fluxograma deve estar composto de:

• Um símbolo de início de execução do programa

• A seqüência de operações necessárias para o correto funcionamento do


programa. As operações seguirão uma ordem (de acima abaixo e da
esquerda à direita).
• Um símbolo que indique o final do programa.

Símbolos utilizados
Simbolo Descrição
Para início/fim ou para uma parada
indeterminada

Símbolo de entrada/saída genérico

Representa uma operação ou processo geral


com dados de memória.

Símbolo de sub-programa ou sub-rotina.


Utiliza-se para realizar uma chamada a um
módulo do programa.

Símbolo de decisão para realizar uma pergunta


com duas possíveis respostas. É o que
chamamos de símbolo de seleção simples.
Símbolo de múltipla seleção

Símbolo de loop definido.

Conector. Utiliza-se para agrupar várias linhas


de fluxo que saem da mesma origem.

Símbolo para colocar comentários

Regras na hora de fazer fluxogramas

Todos os símbolos utilizados devem estar unidos por linhas de fluxo.


Não se pode cruzar as linhas de fluxo
A um símbolo de processo podem chegar várias linhas de fluxo, porém só pode sair
uma dele.
Ao símbolo de início não pode chegar nenhuma linha de fluxo
De um símbolo de fim não pode sair nenhuma linha de fluxo, mas sim podem
chegar várias a ele.

Exemplos
Este primeiro exemplo lhe diz o maior de dois números.
Este segundo lhe devolve os graus introduzidos em Kelvin e Fahrenheit.
Pseudocódigo
Linguagem intermediária entre nossa linguagem e a linguagem de programação.

Por Sara Alvarez Langa

Publicado em: 20/4/07

Valorize este artigo:


1 voto
O principal objetivo do pseudocódigo é o de representar a solução a um algoritmo
da forma mais detalhada possível, e por sua vez o mais parecido possível à
linguagem que posteriormente se utilizará para a codificação do mesmo.

As principais características desta linguagem são:

• Pode-se executar em um computador.


• É uma forma de representação simples de utilizar e de manipular.
• Facilita o passo do programa à linguagem de programação.
• É independente da linguagem de programação que for utilizar.
• É um método que facilita a programação e solução ao algoritmo do
programa.

Todo documento em pseudocódigo deve permitir a descrição de:

• Instruções primitivas
• Instruções de processo
• Instruções de controle
• Instruções compostas
• Instruções de descrição

Estrutura a seguir em sua realização:

Cabeçalho:

• Programa:
• Módulo:
• Tipos de dados:
• Constantes:
• Variáveis:

Corpo:

• Início
• Instruções
• Fim

Para comentar em pseudocódigo, se antepõe ao comentário dois asteriscos (*)

Exemplos

* Programa que calcula a área de um quadrado a partir de um lado dado por


teclado.

Programa: area_quadrado
Modulo: main **( tambem se pode chamar principal)
Variaveis:
lado: natural
area: natural
Inicio
Visualizar "Introduza o lado do quadrado"
Ler lado
Area<- lado * lado
Visualizar "A área do quadrado é", area
Fim

* Programa que visualize a tabela de multiplicar do número introduzido por teclado

Programa: Tabela multiplicar


Modulo: main
Variaveis:
t: inteiro
num : inteiro
Inicio
Visualizar "Introduza um numero"
Ler num
Desde t=1 ate t=10 repetir
Visualizar num, " X", t, "=", num*t
Fim desde
Fim

Uma vez que tivermos preparado um diagrama de fluxos (fluxograma) e um


pseudocódigo, já podemos começar com a codificação do programa em nosso
computador. A partir de aqui tudo varia dependendo da linguagem de programação
que utilizarmos, porém em todos os programas teremos que definir os tipos de
dados que utilizaremos. Tudo isso e mais, será falado no seguinte artigo.
Tipos de dados
Neste artigo falaremos dos possíveis tipos de dados que podemos utilizar na criação de nossos programas.

Por Sara Alvarez Langa

Publicado em: 10/5/07

Valorize este artigo:


1 voto
Antes de mergulharmos nos diferentes tipos de dados, passarei a descrição de dado
para que tudo fique claro desde o princípio.

Dado

Elemento que não manejamos ou armazenamos em um sistema informático. Os


dados manejados em um algoritmo devem levar associado um identificador, um
tipo de dado e seu valor.

Dados básicos

Dentro dos dados básicos podemos encontrar os dados estáticos, derivados e


estruturados.

Os dados estáticos são os seguintes:

• inteiro, real e natural para os números


• caracteres
• cadeia
• lógico
• enumerado

Como dado derivado encontramos os ponteiros que hoje em dia quase não se
utilizam, a não ser que se programe em C.

Os mais complexos são os estruturados e os principais são:

• array
• Estruturas
• Listas, pilhas, filas e árvores ( muito utilizados em C)
• Classes e objetos
• Arquivos
• Banco de dados

Os quatros primeiros são os internos enquanto que os dois últimos correspondem a


tipos de dados externos.

Constantes e variáveis

Define-se como variável a uma posição de memória referenciada por um


identificador onde se pode armazenar um valor determinado (Tipo de dado).

Define-se como constante a um valor que não se modifica ao longo de toda a


execução do programa.
Operadores
Passamos a detalhar os diferentes operadores que existe e seu funcionamento.

Por Sara Alvarez Langa

Publicado em: 23/5/07

Valorize este artigo:


1 voto
Os operadores se classificam em aritméticos, alfanuméricos, relacionais, lógicos e
por último um pequeno grupo de operadores especiais que dependerá das
diferentes linguagens utilizadas.

Operadores aritméticos:

• Para a soma e a subtração se utilizam respectivamente os símbolos; "+" "-"


• Para a divisão e encontrar o resto da mesma se utilizam respectivamente os
símbolos; "/" "%"
• Para multiplicar e elevar potencias se utilizam respectivamente os seguintes
símbolos; "*" "**"

Operadores alfanuméricos:
São os utilizados para trabalhar com cadeias.
Principalmente utilizamos o símbolo "+" para concatenar cadeias. Logo dependendo
da linguagem pode funcionar ou não o símbolo "-" para concatenar cadeias
eliminando os espaços em branco.

Operadores relacionais:

• O símbolo "==" nos compara dois valores


• O símbolo "!=" significa diferente e nos devolve verdadeiro se os valores
comparados são diferentes.
• Logo temos os demais signos como são; "<", ">", "<>", "<=", ">="

Operadores lógicos:
Como operadores lógicos nos encontramos com o símbolo "!" ou "not" para a
negação e o símbolo "&&" ou "and" para a conjunção.

Exemplos

Aritméticos.
A=3
B=2
X=a**2 onde x valeria 9
X=a/2 onde x valeria 1.5
X= a*2 onde x valeria 6
X= a%b onde x valeria 1

Alfanuméricos:
A="Oi"
B=" Tudo bem"
X=a+b onde x valeria "Oi Tudo bem"

Relacionais:
Si x==a então
Instruções
Sino
Instruções
Fim se

Lógicas
Se !a então
A variável está vazia
Fim se
Se a==3 and b==3 então
A e b são iguais
Fim se
Expressões e instruções
Passamos a descrever estes dois termos aplicados à programação e damos algum exemplo.

Por Sara Alvarez Langa

Publicado em: 05/7/07

Valorize este artigo:


1 voto
Expressões

Como definição de expressões entendemos que é um conjunto de operandos e


operadores, que depois de serem avaliados devolvem um determinado resultado.

Em função do resultado obtido podemos classifica-las em:

• Expressões numéricas
• Expressões alfanuméricas
• Expressões lógicas booleanas

Instruções

Como definição de instruções entendemos que é um fato ou acontecimento de


duração limitada que gera umas mudanças na execução do programa.
Existem vários tipos de instruções:

• Instruções de definição de dados


X: inteiro
• Instruções primitivas
o de entrada (ler x)
o de atribuição (x<-3)
o de saída (visualizar x)
• Instruções compostas:
São aquelas instruções que são executadas diretamente pelo processador e
estão constituídas por um conjunto de ações agrupadas em módulos.
• Instruções de controle:
São utilizadas para controlar a seqüência de execução do programa. Dentro
deste tipo de instruções se encontram as instruções de salto que são
aquelas que alteram ou rompem a seqüência de execução de um programa.
Este tipo de instrução não se utiliza na programação estruturada.
Por sua vez, temos as instruções alternativas que controlam a execução ou
não de uma ou mais instruções em função da condição. Estão as instruções
de alternativa simples, dupla e múltipla.
Por último, dentro deste grupo de instruções de controle estão as instruções
repetitivas que são aquelas que nos permitem alterar a seqüência normal da
execução de um programa tornando possível que um grupo de instruções
possam se repetir mais de uma vez.
Todo loop está composto de três partes claramente diferenciadas:
o A: Parte da condição, pode ser qualquer expressão.
o B: Corpo do loop. São o conjunto de instruções que se repetirão.
o C Parte final do loop. É o último em se executar quando não se
cumpre a condição.
Os elementos que intervêem na expressão que conforma a condição devem
estar sempre refletidos no corpo do loop de tal forma que sempre exista a
possibilidade de sair do mesmo.

Existem dois tipos principais de loops:

o Loop do-while: Repetem-se as instruções até que não se cumpra a


condição
While <<condicao>> fazer
Instrucoes
Fin while
o Loop para (for) repetem-se as instruções um número determinado de
vezes.
Para v<-0 ate vf[com i de incremento] fazer
Instrucoes
Fim para

Com isto já temos visto os conceitos básicos para poder começar a programar em
qualquer linguagem de programação e sabendo disso, também sua sintaxe e as
possíveis mudanças com respeito a outras linguagens de programação. Agora é
hora de aprender alguma linguagem em concreto e começar a praticar tudo o que
foi aprendido neste manual.
Introdução ao banco de dados
Começamos com os conceitos básicos para conhecer o que é um banco de dados.

Por Sara Alvarez Langa

Publicado em: 20/7/07

Valorize este artigo:


1 voto
Os bancos de dados se engenharam graças à necessidade das grandes empresas de
armazenar grandiosas quantidades de informação de uma forma rápida, simples e
confiável, e que por sua vez pudessem acessa-la em qualquer momento sem a
necessidade de se deslocar às salas dedicadas a arquivar documentação, como até
há pouco tempo se fazia.

Quando começou a decolagem dos programas informáticos, começou-se a


armazenar dados nos arquivos dos programas, o qual era mais cômodo, porém,
ainda assim tinham grandes dificuldades na hora de querer modificar registros,
estruturas ou simplesmente buscar informação.

Nos finais dos anos sessenta, nascem os bancos de dados. Nestes bancos de dados
se salvavam os dados utilizados pelos usuários, empresas, etc. E com os programas
que os utilizam não foi preciso se preocupar de sua manutenção, nem
armazenagem porque uma mudança no banco de dados, à princípio, não tem
porque afetar aos programas que o utilizam.

Como definição do banco de dados, entendemos que se trata de um conjunto de


dados inter-relacionados e armazenados sem redundâncias desnecessárias, os
quais servem às aplicações sem estar relacionados de uma maneira direta entre
eles.

Um banco de dados pode ser utilizado por várias aplicações e usuários. Todo banco
de dados deve permitir inserir, modificar e excluir dados, portanto nos bancos de
dados se salvam informações de dois tipos:

• Os dados de usuários (dados usados pelas aplicações)


• Os dados de sistema (dados que o banco de dados utiliza para sua
administração. Ex: Dados dos usuários que têm acesso ao banco de dados)

Organização de um banco de dados

Para considerar a um banco de dados organizado, deve-se cumprir os seguintes


objetivos:

• Tem que ser versátil: isto quer dizer que, dependendo dos usuários ou das
aplicações, possam fazer diferentes coisas ou tratem aos dados de formas
diferentes.
• Tem que atender com a rapidez adequada a cada aplicação ou empresa,
atendendo a quem requeri-la.
• Tem que ter um índice de redundância o mais baixo possível.
• Ter uma alta capacidade de acesso para ganhar o maior tempo possível na
realização de consultas.
• Ter um alto índice de integridade, isto significa que ao ter muitos usuários
atacando a um mesmo banco de dados não pode ter falhas na inserção de
dados, erros por redundância ou lenta atualização.
• Obviamente, tem que ter um nível altíssimo de segurança e privacidade já
que os dados que se armazenam em um banco de dados podem ser
altamente confidenciais ou importantes. Neste ponto, também entram os
meios físicos de proteção contra fogo, roubo, etc.
• Por último, tem que ser possível sua constante atualização para não deixar o
banco de dados antigo e inservível. Quando fazemos uma mudança na
organização física dos dados não deve afetar aos programas, portanto
também tem que ter uma independência física dos dados. Assim como tem
que ter total independência lógica com os dados, isto quer dizer que se
fazemos mudanças na estrutura lógica dos dados (agregar novos campos a
uma tabela) não devem afetar às aplicações que utilizem esses dados.
Arquitetura dos bancos de dados
Mostramos os três principais níveis que apresentam os bancos de dados.

Por Sara Alvarez Langa

Publicado em: 03/8/07

Valorize este artigo:


1 voto
Os usuários não costumam saber como estão organizados e armazenados os dados.

Por este motivo um banco de dados deve apresentar os dados de forma que o
usuário possa interpreta-los e modifica-los. Evidentemente, isto não pode ser
aplicado a um informático que necessite saber onde se encontram fisicamente os
dados para poder trata-los.

Podemos destacar três níveis principais segundo a visão e a função que realize o
usuário sobre o banco de dados:

• Nível Interno: é o nível mais perto do armazenamento físico dos dados.


Permite escreve-los tal e como estão armazenados no computador. Neste
nível se desenham os arquivos que contém a informação, a localização dos
mesmos e sua organização, ou seja, criam-se os arquivos de configuração.
• Nível conceitual: Neste nível se representam os dados que vão ser utilizados
sem em conta aspectos como o que representamos no nível interno.
• Nível externo: é o mais próximo ao usuário. Neste nível se descrevem os
dados ou parte dos dados que mais interessam aos usuários.

Estes três níveis de visão de usuários são proporcionados pelos sistemas gestores
de banco de dados (já veremos mais adiante o que significa isto).

Um banco de dados específico tem um único nível interno e um único nível


conceitual, mas pode ter vários níveis externos.
Sistemas de informação gerencial de banco de dados
Introdução a este conceito e características especiais.

Por Sara Alvarez Langa

Publicado em: 14/8/07

Valorize este artigo:


1 voto
Um sistema de informação gerencial de banco de dados se define como o conjunto
de programas que administram e gerenciam a informação contida em um banco de
dados. Ajuda a realizar as seguintes ações:

• Definição dos dados


• Manutenção da integridade dos dados dentro do banco de dados
• Controle da segurança e privacidade dos dados
• Manipulação dos dados

Um sistema de informação gerencial de dados está composto de:

O gerenciamento do banco de dados

Trata-se de um conjunto de programas não visíveis ao usuário final que se


encarregam da privacidade, da integridade, da segurança dos dados e a interação
com o sistema operacional. Proporciona uma interface entre os dados, os
programas que os manejam e os usuários finais.
Qualquer operação que o usuário faz contra o banco de dados está controlada pelo
administrador.

O administrador armazena uma descrição de dados no qual chamamos dicionário


de dados, assim como os usuários permitidos e as permissões.
Tem que haver um usuário administrador encarregado de centralizar todas estas
tarefas.

Dicionário de dados

É um banco de dados onde se salvam todas as propriedades do banco de dados,


descrição da estrutura, relações entre os dados, etc.
O dicionário deve conter:

• A descrição externa, conceitual e interna do banco de dados


• As restrições sobre os dados
• O acesso aos dados
• As descrições das contas de usuário
• As permissões dos usuários
• Os esquemas externos de cada programa

O administrador do banco de dados

É uma pessoa ou grupo de pessoas responsáveis do controle do sistema de


gerenciamento do banco de dados.
As principais tarefas de um administrador são:
• A definição do esquema lógico e físico do banco de dados
• A definição das vistas de usuário
• A atribuição e edição de permissões para os usuários
• Manutenção e seguimento da segurança no banco de dados
• Manutenção geral do sistema de gerenciamento do banco de dados

As linguagens

Um sistema de gerenciamento de banco de dados deve proporcionar uma série de


linguagens para a definição e manipulação do banco de dados. Estas linguagens são
as seguintes:

• Linguagem de definição de dados (DDL). Para definir os esquemas do banco


de dados
• Linguagens de manipulação de dados (DML). Para manipular os dados do
banco de dados
• Linguagem de controle de dados(DCL). Para a administração de usuários e
segurança no banco de dados.
Modelos de bancos de dados
Depois de realizar o desenho conceptual de um banco de dados é necessário traduzi-lo ao modelo lógico de dados.

Por Sara Alvarez Langa

Publicado em: 24/8/07

Valorize este artigo:


1 voto
Os modelos mais conhecidos e utilizados são:

Modelo de dados hierárquico

Este modelo utiliza árvores para a representação lógica dos dados. Esta árvore esta
composta de uns elementos chamados nós. O nível mais alto da árvore denomina-
se raiz. Cada nó representa um registro com seus correspondentes campos.

A representação gráfica deste modelo se realiza mediante a criação de uma árvore


invertida, os diferentes níveis ficam unidos mediante relações.

Neste modelo só se podem representar relações 1:M, por isso apresenta vários
inconvenientes:

• Não se admitem relações N:M


• Um segmento filho não pode ter mais de um pai.
• Não se permitem mais de uma relação entre dois segmentos.
• Para acessar a qualquer segmento é necessário começar pelo segmento raiz
• A árvore se deve percorrer na ordem designada.

Modelo de dados em rede

Neste modelo as entidades se representam como nós e suas relações são as linhas
que os unem. Nesta estrutura qualquer componente pode se relacionar com
qualquer outro.
Diferentemente do modelo hierárquico, neste modelo, um filho pode ter vários pais.

Os conceitos básicos no modelo em rede são:


• O tipo de registro, que representa um nó.
• Elemento, que é um campo de dados.
• Agregado de dados, que define um conjunto de dados com nome.

Este modelo de dados permite representar relações N:M

Modelo de dados relacional

Este modelo é o mais utilizado atualmente já que utiliza tabelas bidimensionais


para a representação lógica dos dados e suas relações.

Algumas de suas principais características são:

• Pode ser entendido e usado por qualquer usuário.


• Permite ampliar o esquema conceitual sem modificar as aplicações de
gerenciamento.
• Os usuários não necessitam saber onde se encontram os dados fisicamente.

O elemento principal deste modelo é a relação que se representa mediante uma


tabela.
Arquitetura cliente-servidor
Características principais deste tipo de arquitetura de frente ao banco de dados.

Por Sara Alvarez Langa

Publicado em: 01/9/07

Valorize este artigo:


1 voto
Esta arquitetura se divide em duas partes claramente diferenciadas, a primeira é a
parte do servidor e a segunda a de um conjunto de clientes.

Normalmente o servidor é uma máquina bastante potente que atua como depósito
de dados e funciona como um sistema gerenciador de banco de dados (SGBD).

Por outro lado, os clientes costumam ser estações de trabalho que solicitam vários
serviços ao servidor.

Ambas partes devem estar conectadas entre si mediante uma rede.


Uma representação gráfica deste tipo de arquitetura seria a seguinte.

Este tipo de arquitetura é a mais utilizada atualmente, devido ao fato de ser a mais
avançada e a que melhor evoluiu nestes últimos anos.

Podemos dizer que esta arquitetura necessita três tipos de software para seu
correto funcionamento:

• Software de gerenciamento de dados: Este software se encarrega da


manipulação e gerenciamento de dados armazenados e requeridos pelas
diferentes aplicações. Normalmente este software se hospeda no servidor.
• Software de desenvolvimento: este tipo de software se hospeda nos clientes
e só naqueles que se dediquem ao desenvolvimento de aplicações.
• Software de interação com os usuários: Também reside nos clientes e é a
aplicação gráfica de usuário para a manipulação de dados, sempre é claro, a
nível de usuário (consultas principalmente).
A parte destes existem mais aplicações software para o correto funcionamento
desta arquitetura, mas já estão condicionados pelo tipo de sistema operacional
instalado, o tipo de rede na qual se encontra, etc.
Modelo entidade-relação
Mostramos as características básicas de um dos modelos conceituais mais utilizados.

Por Sara Alvarez Langa

Publicado em: 17/9/07

Valorize este artigo:


1 voto
Este modelo se obtén em tempo de design do banco de dados. Foi proposto por
Peter Chen em 1976 e desde então vem se utilizando de uma forma muito global.
Caracteriza-se por utilizar uma série de símbolos e regras para representar os
dados e suas relações.
Com este modelo conseguimos representar de maneira gráfica a estrutura lógica de
um banco de dados.

Os principias elementos do modelo entidade-relação são as entidades com seus


atributos e as relações entre entidades.

Elementos do modelo entidade-relação

Entidad

Trata-se de um objeto do qual se recolhe informação de interesse para o banco de


dados. Gráficamente, representam-se mediante um retângulo. Um exemplo seria a
entidade banco, onde se recolheriam os dados relativos a esse banco, como pode
ser o nome, o número de filial, o endereço, etc.

Dentro das entidades podem ser fortes ou débeis. As fortes são as que não
dependem de outras entidades para existir, enquanto que as entidades débeis
sempre dependem de outra entidade, senão não tem sentido por elas mesmas.

Relação

Podemos definir a relação como uma associação de duas ou mais entidades. A cada
relação se atribui um nome para poder distingui-la das demais e saber sua função
dentro do modelo entidade-relação. Outra característica é o grau de relação, sendo
as de grau 1 relações que só relacionam uma entidade consigo mesma. As de grau
2 são relações que associam duas entidades diferentes, e as de grau n que se
tratan de relações que unem mais de duas entidades.

As relações se representam graficamente com rombos, dentro delas se coloca o


nome da relação.

Outra característica é o de correspondência entre duas relações;

• 1:1. Um a um, a cada ocorrência de uma entidade lhe corresponde como


máximo uma ocorrência da outra entidade relacionada.
• 1:N. Um a Muito, a cada ocorrência da entidade A lhe podem corresponder
várias da entidade B.
• N:M. Muitos a muitos, cada ocorrência de uma entidade pode conter várias
da outra entidade relacionada e vice-versa.
Para finalizar as características da relação temos a cardinalidade que define o
número máximo e mínimo de ocorrências de cada tipo de entidade. Representa-se
com os valores máximo Representa-se com os valores máximo com o mínimo
fechados entre parênteses encima da relação. (máximo, mínimo)

Atributo

Define-se como cada uma das propriedades de uma entidade ou relação. Cada
atributo tem um nome e todos os possíveis valores que pode ter. Dentro de uma
entidade tem que haver um atributo principal que identifica à entidade e seu valor
tem que ser único. Um exemplo de atributo principal seria o dni dentro da entidade
pessoa.

Colocamos um exemplo do que seria um esquema do modelo entidade-relação.


Estrutura do modelo relacional
O que é, como se constrói e como se utiliza este simples mas potente modelo relacional de dados.

Por Sara Alvarez Langa

Publicado em: 03/10/07

Valorize este artigo:


1 voto
Trata-se de um modelo bastante potente e ao mesmo tempo bastante simples, que
não representa problemas. O elemento principal deste modelo é a relação. Por
tanto, podemos dizer que um banco de dados relacional está composto por um
conjunto de relações.

Relação

A relação se representa mediante uma tabela, esta tabela representa ao que no


modelo entidade-relação chamávamos entidade. Esta tabela contém os atributos
(colunas) e as tuplas (filas).

• Atributo: trata-se de cada uma das colunas da tabela. Vêem definidas por
um nome e podem conter um conjunto de valores.
• Tupla: trata-se de cada uma das filas da tabela. É importante assinalar que
não se podem ter tuplas duplicadas em uma tabela.

Domínios

O domínio dentro da estrutura do modelo relacional é o conjunto de valores que


pode tomar um atributo. Existem dois tipos de domínios:

• domínios generais: são aqueles que estão compreendidos entre um máximo


e um mínimo.
• domínios restringidos: são os que pertencem a um conjunto de valores
específicos.

Chaves

Cada tupla de uma tabela tem que estar associada a uma chave única que permita
identifica-la.
Uma chave pode estar composta por um ou mais atributos.
Uma chave tem que ser única dentro de sua tabela e não se pode descartar
nenhum atributo da mesma para identificar uma fila.
Existem dois tipos de chaves:

• Chave primária (Primary Key): é o valor ou conjunto de valores que


identificam uma fila dentro de uma tabela. Nunca pode ser NULL. Um
exemplo claro de chave primária seria o RG, que é único para cada pessoa e
não pode ser NULL.
• Chave alheia (Foreign Key): é o valor ou valores de uma tabela que
corresponde com o valor de uma chave primária em outra tabela. Esta
chave é a que representa as relações entre as tabelas.
Vistas

Trata-se de uma tabela fictícia, a qual mostra atributos de outras tabelas


relacionadas. Desta forma obtemos os dados que nos interessam de uma ou várias
tabelas. É importante assinalar que não se podem realizar operações sobre vistas.
Tipos de instruções SQL e seus componentes sintáticos
Passamos a descrever os tipos de sentenças sql que podemos encontrar e seus componentes sintáticos.

Por Sara Alvarez Langa

Publicado em: 05/3/08

Valorize este artigo:


2 votos
Em SQL temos bastantes instruções que se podem utilizar para realizar diversas
tarefas.

Dependendo das tarefas, estas sentenças se podem classificar em três grupos


principais (DML, DDL,DCL), embora nos restaria outro grupo que ao meu entender
não está dentro da linguagem SQL, e sim da PLSQL.

INSTRUÇÃO DESCRIÇÃO

DML Manipulação de dados


Recupera dados do banco de dados.
SELECT
Adiciona novas filas de dados ao banco de dados.
INSERT
Suprime filas de dados do banco de dados.
DELETE
Modifica dados existentes no banco de dados.
UPDATE

DDL Definição de dados


Adiciona uma nova tabela ao banco de dados.
CREATE TABLE
Suprime uma tabela do banco de dados.
DROP TABLE
Modifica a estrutura de uma tabela existente.
ALTER TABLE
Adiciona uma nova vista ao banco de dados.
CREATE VIEW
Suprime uma vista do banco de dados.
DROP VIEW
Constrói um índice para uma coluna.
CREATE INDEX
Suprime o índice para uma coluna.
DROP INDEX
Define um alias para um nome de tabela.
CREATE SYNOYM
Suprime um alias para um nome de tabela.
DROP SYNONYM

DCL Controle de acesso


GRANT Concede privilégios de acesso a usuários.
REVOKE Suprime privilégios de acesso a usuários
Controle de transações
Finaliza a transação atual.
COMMIT Aborta a transação atual.
ROLLBACK

PLSQL SQL Programático


Define um cursor para uma consulta.
DECLARE
Abre um cursor para recuperar resultados de consulta.
OPEN
Recupera uma fila de resultados de consulta.
FETCH
Fecha um cursor.
CLOSE

Componentes sintáticos

A maioria de sentenças SQL tem a mesma estrutura.

Todas começam por um verbo (select, insert, update, create), a seguir continua
com uma ou mais cláusulas que nos dizem dados com os que vamos operar (from,
where), algumas destas são opcionais e outras obrigatórias como é o caso do from.

Você também pode gostar