You are on page 1of 34

Histrico SQL

A linguagem SQL foi desenvolvida pela IBM no final dos anos 70, tendo sido a
linguagem adotada em seu prottipo de banco de dados relacional denominado System
R. O primeiro banco de dados comercial a utilizar a linguagem SQL foi apresentado em
1979, pela Oracle.

No incio dos anos 80, o Instituto Americano de Padronizao (ANSI American


National Standards Institute) iniciou os trabalhos de desenvolvimento de uma verso
padronizada do SQL, a qual foi publicada nos anos de 1986 e 1987. Posteriormente
outras revises e acrscimos foram efetuados no SQL que sofreu importantes melhorias.
Como ela padronizada pelo ANSI, assim como acontece, por exemplo com as
linguagens C, C++ e Pascal, diversos fabricantes de bancos de dados sentiram-se
seguros em adota-la como sendo a linguagem padro para seus bancos de dados.

Outro fator, talvez mais significativo que o anterior e que levou adoo do padro SQL
por diversos bancos de dados, foi o fato de que essa linguagem no procedural. Isso
pode ser traduzido da seguinte maneira: no importa como uma tarefa vai ser
executada pelo banco de dados; importa apenas que ela vai ser executada. Em breve
veremos as estruturas bsicas do SQL, e certamente aqueles que nunca tiveram contato
com ela iro se surpreender com as facilidades apresentadas.

Bancos de dados, como Access, SQL Server, Oracle, DB2 e Paradox, utilizam o SQL.
Embora boa parte do SQL padro ANSI seja utilizada por esses bancos, os
programadores encontraro algumas variaes e uma srie de acrscimos ao padro
desses bancos de dados.

Uma das grandes vantagens do SQL que uma linguagem universal para os bancos
de dados profissionais. Uma boa parte dessa linguagem est padronizada. Evidentemente
existem alguns acrscimos conforme o banco de dados utilizado (MSSQL Server,
Oracle, DB2, etc). Entretanto, a base a mesma.

Definio
O SQL uma linguagem padro, especificamente concebida para permitir que as
pessoas a criem Bancos de Dados, adicionem novos dados a essas bases, manipulem
os dados, e recuperem partes selecionadas dos dados.

Existem basicamente duas formas de manipulao de dados usando o software de


banco de dados. Uma abordagem interagir diretamente com o SGBD usando uma
linguagem especial chamada linguagem de consulta. Na segunda abordagem, o utilizador
interage com o programa de aplicao. O programa de aplicao envia instrues para
o SGBD, que ento executa as aes especificadas pelo programa. Esta lio ir se
concentrar em usar linguagens de consulta para executar tarefas de processamento de
dados.

Query Language (linguagem de consulta)


A Linguagem de consulta permite ao usurio interagir diretamente com o software de
banco de dados, a fim de executar as tarefas de processamento de informaes, usando
dados em um banco de dados. normalmente uma linguagem de computador fcil de
usar, que se baseia em palavras bsicas, tais como SELECT, DELETE ou ALTER.
Usando linguagem de consulta e um teclado de computador, o usurio digita comandos
que instruem o SGBD para recuperar dados de uma base de dados ou A atualizao de
um banco de dados.

Structured Query Language (SQL -


linguagem de consulta estruturada)
um tipo de linguagem de consulta que amplamente utilizada para executar operaes
usando bancos de dados relacionais. Lembre-se que os bancos de dados relacionais so
compostos por tabelas com linhas e colunas. A Linguagem SQL pode ser usado para
recuperar informaes de tabelas relacionadas em um banco de dados ou para
selecionar e recuperar informaes de linhas e colunas especficas em uma ou mais
tabelas. Uma das chaves para a compreenso de como funciona o SQL em um banco de
dados relacional perceber que cada tabela e coluna tem um nome especfico associado
a ele. Para consultar uma tabela, o usurio especifica o nome da tabela (indicando
as linhas a ser exibido) e os nomes das colunas a serem exibidas.

Uma consulta SQL tpica contm trs elementos-chave:

1. SELECT (os nomes das colunas a serem exibidos)


2. FROM (indica o nome da tabela da qual os nomes das
colunas ser derivado)
3. WHERE (descreve a condio para a consulta)

Para ilustrar a aplicao deste tipo de consulta, vamos supor que um determinado usurio
deseje consultar um banco de dados relacional contendo informaes sobre os doadores
para uma organizao de caridade. Se o usurio quiser saber o nome e endereo de todos
os indivduos que doam US$ 100 ou mais, a seguinte consulta poder ser usada:

1. SELECT Nome, Endereo


2. FROM Lista-de-Doadores
3. WHERE Doacao > 100

Uma vez que este comando foi executado, o computador ir exibir uma lista de doadores
que atenda aos critrios pr-definidos. Neste caso, todos os dados so extrados a partir
de uma nica tabela. Consultas semelhantes podem ser feitas para extrair dados de vrias
tabelas. Tal estratgia pode ser usada para analisar as informaes do cliente, envolvendo
dados de faturamento e dados de ordem, usando duas tabelas separadas.

Outras capacidades e linguagens de


consulta
SQL tem muitas outras capacidades, uma das quais a de ser capaz de atualizar e
revisar um banco de dados relacional. Os usurios podem descobrir a necessidade de
adicionar ou excluir colunas em um banco de dados.

Outros tipos de linguagens de consulta tambm esto disponveis para manipulao de


dados em bancos de dados relacional. Outro exemplo popular chamado de consulta por
exemplo (QBE). Esta linguagem utiliza uma abordagem grfica e padres de grade para
permitir ao usurio especificar os dados a serem exibidos. SQL QBE no pode ser usado
com Bancos de Dados hierrquicos e rede. Linguagens de consulta exclusivas foram
projetados especificamente para esses bancos de dados.

O que pode fazer o SQL?


SQL pode executar consultas em um banco de dados
SQL pode selecionar e recuperar dados a partir de um banco de dados
SQL pode inserir registros em um banco de dados
SQL pode atualizar registros em um banco de dados
SQL pode excluir registros de um banco de dados
SQL pode criar novos Bancos de Dados
SQL pode criar novas tabelas em um banco de dados
SQL pode criar procedimentos armazenados (stored procedures) em um banco de
dados
SQL pode criar vises (views) em um banco de dados
SQL pode definir permisses em tabelas, procedimentos, e vises

SQL um padro
Embora o SQL seja um padro ANSI (American National Standards Institute), h muitas
verses diferentes da linguagem SQL. No entanto, para ser compatvel com o padro
ANSI, a linguagem deve possuir pelo menos, os comandos principais (como SELECT,
UPDATE, DELETE, INSERT) de maneira semelhante.

Nota: A maioria dos programas de banco de dados SQL tambm tm suas prprias
extenses proprietrias, alm do padro SQL!

DML, DDL e DCL


A linguagem SQL pode ser dividida em trs partes:

DDL - linguagem de definio de dados (Data Definition Language) permite a


criao, eliminao e alterao da estrutura fisica da Base de Dados. Ela tambm
define os ndices (chaves), especifica as ligaes entre as tabelas, e impe
restries entre tabelas. As declaraes mais importantes DDL em SQL so:

o CREATE DATABASE - cria um novo banco de dados


o ALTER DATABASE - altera um banco de dados
o CREATE TABLE - cria uma nova tabela
o ALTER TABLE - modifica uma tabela
o DROP TABLE - apaga uma tabela
o CREATE INDEX - cria um ndice (chave de busca)
o DROP INDEX - exclui um ndice

DML - linguagem de manipulao de dados (Data Manipulation Language)


permite a Insero, edio e excluso dos dados das tabelas. A consulta e os
comandos de atualizao formam a parte DML de SQL so:

o SELECT - extrai dados de um banco de dados


o UPDATE - atualiza os dados em um banco de dados
o DELETE - exclui dados de um banco de dados
o INSERT - insere novos dados em um banco de dados

DCL - Linguagem de Controle de Dados (Data Control Language) atribui


permisses aos objetos atravs dos comandos Grant, revoke e Deny. A Linguagem
de Controle de Dados (DCL) um subconjunto do Lanaguge SQL (Structured
Query) que permite que os administradores de banco de dados para configurar o
acesso de segurana para bancos de dados relacionais. DCL o mais simples dos
subconjuntos SQL, j que consiste em apenas trs comandos: GRANT, REVOKE
e DENY. Combinados, esses trs comandos oferecem aos administradores a
flexibilidade para definir e remover permisses de banco de dados de forma
extremamente granular.

o GRANT utilizado para adicionar novas permisses para um usurio


o REVOKE utilizado para remover o acesso de banco de dados de um
usurio
o DENY utilizado para impedir explicitamente que um usurio receba uma
permisso especial

Tipos de Dados
Antes de criar uma tabela voc precisa entender as diferenas entre os tipos de dados que
voc pode utilizar em uma coluna. Os tipos de dados SQL se classificam em 13 tipos de
dados primrios e de vrios sinnimos vlidos reconhecidos por tais tipos de dados. Os
tipos de dados primrios so:

Tipo de Dados Longitude Descrio


Para consultas sobre tabela anexa de produtos de banco
BINARY 1 byte
de dados que definem um tipo de dados Binrio.
BIT 1 byte Valores Sim/No ou True/False
BYTE 1 byte Um valor inteiro entre 0 e 255.
Um nmero incrementado automaticamente (de tipo
COUNTER 4 bytes
Long)
Um inteiro escalvel entre 922.337.203.685.477,5808 e
CURRENCY 8 bytes
922.337.203.685.477,5807.
DATETIME 8 bytes Um valor de data ou hora entre os anos 100 e 9999.
Um valor em ponto flutuante de preciso simples com
uma classificao de - 3.402823*1038 a -1.401298*10-
SINGLE 4 bytes
45 para valores negativos, 1.401298*10- 45 a
3.402823*1038 para valores positivos, e 0.
Um valor em ponto flutuante de dupla preciso com
uma classificao de - 1.79769313486232*10308 a -
DOUBLE 8 bytes 4.94065645841247*10-324 para valores negativos,
4.94065645841247*10-324 a
1.79769313486232*10308 para valores positivos, e 0.
SHORT 2 bytes Um inteiro curto entre -32,768 e 32,767.
LONG 4 bytes Um inteiro longo entre -2,147,483,648 e 2,147,483,647.
1 byte por
LONGTEXT De zero a um mximo de 1.2 gigabytes.
caractere
Segundo se
LONGBINARY De zero 1 gigabyte. Utilizado para objetos OLE.
necessite
1 byte por
TEXT De zero a 255 caracteres.
caractere

A seguinte tabela recolhe os sinnimos dos tipos de dados definidos:

Tipo de Dado Sinnimos Descrio


Varbinary dados binrios com tamanho
BINARY VARBINARY
varivel at 8 Kb
BOOLEAN
LOGICAL
BIT
LOGICAL1
YESNO
BYTE INTEGER1
COUNTER AUTOINCREMENT
Money - 922.337.203.685.447,5808 8
CURRENCY MONEY
bytes
Date 1/1/1753 a 31/12/9999 8 bytes
DATE Timestamp cria um valor nico gerado
DATETIME TIME pelo SQL Server, automaticamente
TIMESTAMP atualizado em caso de incluso ou alterao
de uma linha.
FLOAT4
SINGLE IEEESINGLE
REAL
FLOAT
DOUBLE FLOAT8
IEEEDOUBLE
NUMBER
NUMERIC
INTEGER2
SHORT Smallint - 32.767 2 bytes
SMALLINT
INT
LONG INTEGER
INTEGER4
GENERAL
LONGBINARY
OLEOBJECT
LONGCHAR
LONGTEXT MEMO
NOTE
ALPHANUMERIC
Char para carcteres com tamanho fixo
CHAR -
at 8 Kb
TEXT CHARACTER
Varchar para carcteres com tamanho
STRING -
varivel at 8 Kb
VARCHAR

Veja no quadro abaixo o melhor tipo de


dados para os exemplos
Descrio Exemplo Melhor tipo de
Nome da coluna dado
preco Preo de um item a 5678.39 Money
venda
cep 5 a 10 carcteres 11015-420 VARCHAR(10)
massa Peso atmico de um 4.066054 FLOAT
elemento
comentarios Bloco de texto gigante Joe, Im at the LONGCHAR
shareholders meeting.
They just gave a demo
and there were rubber
duckies flying around
the screen. Was this
your idea of a joke? You
might want to spend
some time on
Monster.com....
quantidade Itens em estoque 239 INT
taxa Uma porcentagem 3.755 FLOAT
titulo Um texto Guia de bolso do VARCHAR(50)
administrador
sexo Um carcter M ou F M CHAR(1)
telefone Dez dgitos sem 32027100 CHAR(10)
pontuao
estado Dois carcteres SP CHAR(2)
aniversrio Dia, ms e ano 28/10/1973 DATE

Controle de Concorrncia em Banco de


Dados
Controle de concorrncia um mtodo usado para garantir que as transaes sejam
executadas de uma forma segura e sigam as regras ACID. Os SGBD devem ser capazes
de assegurar que nenhuma ao de transaes completadas com sucesso (committed
transactions) seja perdida ao desfazer transaes abortadas (rollback).
Uma transao uma unidade que preserva consistncia. Requeremos, portanto, que
qualquer escalonamento produzido ao se processar um conjunto de transaes
concorrentemente seja computacionalmente equivalente a um escalonamento produzindo
executando essas transaes serialmente em alguma ordem. Diz-se que um sistema que
garante esta propriedade assegura a seriabilidade.

Tcnicas de locking podem ser utilizadas para garantir seriabilidade e recuperabilidade


nos escalonamentos das transaes do banco de dados. Um escalonamento conflito-
serializvel um escalonamento equivalente a alguma execuo serial das transaes.

Propriedades ACID de Transaes


Vamos revisar aqui rapidamente os conceitos de ACID, que pode ser visto neste artigo.
Atomicidade: A execuo de uma transao deve ser atmica, ou todas as aes so
executadas, ou nenhuma ;
Consistncia: Cada transao executada isoladamente deve preservar a consistncia
do banco de dados;
Isolamento: Cada transao deve ser isolada dos efeitos da execuo concorrente de
outras transaes;
Durabilidade: Toda transao que for finalizada de forma bem-sucedida deve
persistir seus resultados em banco mesmo na presena de falhas no sistema.

Consistncia e Isolamento
o usurio quem deve garantir a consistncia da transao. Exemplo: Transferncia de
fundos entre contas no alteram a quantia total de dinheiro nas contas.

O isolamento deve garantir que duas transaes, executadas concorrentemente, devem ter
o mesmo resultado se executadas em ordem serial. Exemplo: T1 concorrente com T2 T1,
T2 ou T2, T1.

Atomicidade das Transaes


As falhas em uma transao podem ter como motivo:

Interrupo do SGBD;
Queda do sistema;
Deteco de uma situao inesperada.
Uma transao interrompida ao meio pode deixar o banco de dados em um
estado inconsistente. O banco de dados deve prover recursos para remoo dos efeitos de
transaes incompletas para garantir a atomicidade.
O SGBD mantm um registro (log) das aes executadas pelo usurio para que estas
possam ser desfeitas caso ocorra alguma falha em uma transao. O log tambm
utilizado para garantir a durabilidade. Se ocorrer queda do sistema antes que todas as
mudanas tenham sido feitas em disco, o log usado para restaurar o estado do banco de
dados quando o sistema for reiniciado.

Escalonamento de Transaes
Um escalonamento uma lista de aes de um conjunto de transaes. Representa uma
seqncia de execuo que deve conservar a mesma ordem de execuo das aes das
transaes presentes nele.
Escalonamento completo: O escalonamento insere, para todas as transaes, as aes
de abort ou commit;
Escalonamento serial: O escalonamento no intercala as aes de transaes
diferentes;
Escalonamento equivalente: Para qualquer estado da base de dados, o efeito de
executar um primeiro escalonamento idntico ao efeito de executar um segundo
escalonamento;
Escalonamento serializvel: Escalonamento equivalente a alguma execuo serial
das transaes.
Se cada transao preserva a consistncia, todo escalonamento serializvel preserva a
consistncia.

Recuperao de Falhas
O Gerenciador de Recuperao de Falhas garante a atomicidade e a durabilidade das
transaes.
Atomicidade: Desfazendo as aes das transaes que no realizaram o commit.
Durabilidade: Todas as aes das transaes que fizeram commit sero persistentes.
O Gerenciador responsvel por recuperar a consistncia, aps uma queda do sistema.

H 3 fases no algoritmo de recuperao de ARIES:


Analisar: Percorre o log para frente (a partir do ponto de verificao mais recente)
para identificar todas as transaes que estavam ativas, e todas as pginas sujas no
momento da falha.
Refazer: Refaz todas as atualizaes das pginas sujas, quando necessrio, para
garantir que todas as atualizaes registradas no log foram realizadas e escritas no
disco.
Desfazer: As escritas de todas as transaes que estavam ativas no momento da falha
so desfeitas (recuperando o valor anterior atualizao registrado no log da
atualizao), varrendo o log de trs para frente.

Falhas no Sistema
Dada a complexidade dos equipamentos e programas modernos, ponto pacfico que
falhas ocorrero, quer sejam problemas de hardware, quer sejam defeitos de software.
Estas falhas tm como efeito indesejvel comprometer a integridade do BD. Para que seja
de alguma utilidade prtica, O SGBD deve, portanto, incorporar mecanismos que
garantam sua integridade, quando no pelo menos na presena daquelas falhas que
ocorrem com mais freqncia. Desta forma, o SGBD pode ser mantido em operao por
longos perodos de tempo sendo, quando muito, interrompido por curtos intervalos para
que os mecanismos de controle de integridade sanem inconsistncias causadas por
eventuais falhas. Esta seo sevir de introduo rea de controle de integridade em
SGBD, onde os principais problemas e as solues mais importantes sero mencionadas
de forma simplificada. Em captulo posterior, esta problemtica ser analisada em
maiores detalhes.
Intuitivamente, a nica maneira do SGBD se proteger contra falhas, que podem destruir
parte dos dados, criar e manter certa redundncia no sistema. Desta forma, quando parte
do BD e danificado, sua cpia redundante pode ser revivida para recuperar os dados
perdidos e restabelecer a operao normal. Inclusive, em sistemas que requeiram alta
confiabilidade, as partes mais crticas do prprio hardware podem ser duplicadas de
forma redundante. Note que, se a cpia de um objeto no recente, ento deve-se
manter tambm um histrico das operaes efetuadas sobre este objeto, de tal modo que
o SGBD possa refazer estas operaes e trazer esta cpia ao estado mais recente,
idntico quele da cpia original antes da falha. Caso contrrio, transaes executadas
entre o instante de criao da cpia e o momento atual sero perdidas.

Tipos de falhas
Um n qualquer, quando em operao normal, depende de um padro de interligaes
complexas entre vrios elementos. Para efeito de examinar a ocorrncia e danos causados
por falhas nestes componentes conveniente agrup-los da seguinte forma

procedimentos;
processadores;
memrias;
no caso distribudo, comunicao de dados;
Por procedimentos entende-se a totalidade dos mdulos e programas aplicativos
(software) que compem o SGBD, podendo-se incluir aqui tambm os utilitrios do
sistema operacional usados pelo SGBD. Os processadores correspondem tanto ao
processador, ou processadores, central como as demais unidades de controle de
perifricos, terminais, modems, etc. As memrias, onde reside o BD, aqui entendido
como dados mais programas, so de crucial importncia. l que ser acomodada toda
redundncia introduzida para fins de controle de integridade. Todos os mecanismos de
proteo contra falhas prestam especial ateno ao tratamento dispensado aos vrios tipos
de memrias com que o sistema interage e, em ltima anlise, se fiaro na boa
caracterstica de resistncia a falhas que tais elementos oferecem. Para que se possa
conduzir uma anlise mais detalhada, as memrias manipuladas pelo sistema sero
subdivididas em:
memria principal
memria secundria imediatamente disponvel
memria secundria dormente
A memria principal corresponde a memria associada aos processadores, isto ,
memria dos processadores centrais, memrias tipo cache, buffers de entrada/sada,
espao de paginao, etc. H certos tipos de falhas s quais o contedo da memria
principal no sobrevive, devendo ser considerado como irremediavelmente perdido. Estes
defeitos sero cognominados de falhas primrias. Interrupo no fornecimento de
energia eltrica, defeito nos processadores ou procedimentos do sistema podem causar
este tipo de falha. Por no sobreviver a este tipo de falha mais comum, diz-se que a
memria principal voltil.
O termo memria secundria imediatamente disponvel, ou memria secundria ativa,
referem-se memria de massa, geralmente discos magnticos, onde o BD residente e
que est a disposio do SGBD a todo instante. O contedo da memria secundria ativa
no afetado por falhas primrias que o sistema venha a sofrer. Porm, panes nos
cabeotes de leitura/escrita dos discos ou partculas de poeira que assentem sobre a
superfcie dos mesmos podem danificar os delicados mecanismos dos cabeotes e
provocar danos irrecuperveis superfcie magntica destruindo, em todo ou em parte, o
contedo da memria secundria ativa. Isto se verificando, diz-se que o sistema sofreu
uma falha secundria. Fitas magnticas tambm podem ser usadas como memria
secundria ativa, se bem que cuidados devem ser tomados para que a eficincia do sistema
no seja por demais comprometida. Partes raramente usadas do BD, cpias antigas de
parte ou da ntegra do sistema, alm de aplicativos ativados com pouca freqncia, so
candidatos naturais a residirem em fita. Nunca dicionrios, catlogos e outros elementos
freqentemente acessados.
Como um ltimo recurso, e em casos realmente catastrficos, o controle de integridade
do SGBD pode apelar para a memria secundria dormente (off-line). Entende-se
como memria secundria dormente toda memria fisicamente desconectada do sistema.
Geralmente, devido sua grande capacidade de armazenamento de dados, fitas
magnticas so empregadas para este fim. Em BD de grandes propores, toda uma
fitoteca pode ser necessria. comum armazenar os componentes da memria secundria
dormente em locais prprios, distantes do centro onde opera o sistema. A preocupao
bsica evitar que catstrofes sobre um dos lugares, tais como incndios ou furtos, no
afete o outro. De qualquer maneira, eventos que destruam ou inutilizem o contedo da
memria secundria dormente do sistema sero chamados de falhas tercirias.
Existem situaes que exigem aes por parte do sistema de controle de integridade do
BD, embora no se configurem propriamente como falhas em componentes do sistema.
O caso tpico quando, sob operao normal, surje a necessidade de se cancelar
transaes. Isto pode ocorrer tanto por erro ou a pedido do usurio, como podem ser aes
foradas pelo SGBD como ltima instncia para evitar bloqueio na execuo de
transaes que competem por certos recursos do sistema. Estes casos sero rotulados
como pseudo-falhas do sistema. Agora, no est em cheque o contedo de nenhuma das
memrias ou a sanidade dos processadores ou procedimentos associados ao sistema. A
cooperao do controle de integridade, porm, necessria para invocar a transao que
inverte o efeito das aes elementares executadas em benefcio da transao a ser
cancelada. Deste modo, o BD permanece em um estado consistente, alm do que forada
a liberao dos recursos que foram seqestrados pela transao.
A discusso acima desloca-se a partir de falhas nos componentes mais nobres, isto , com
menor tempo de acesso, para os menos nobres, com tempos de acesso consideravelmente
maiores. importante ter em mente uma noo da freqncia com que os vrios tipos de
falhas costumam ocorrer na prtica, bem como do tempo necessrio para que o controle
de integridade restaure a operao normal do BD em cada caso.

Controle de Concorrncia
Um SGBD, suportando bancos de dados com vrias aplicaes, dever necessariamente
permitir acesso concorrente aos dados. intuitivo que, em tese, quanto maior for o nvel
de concorrncia permitido, tanto melhor ser o tempo de resposta do sistema como um
todo. Em tese porque, forosamente, os mecanismos que controlam o acesso concorrente
ao banco impem um nus adicional sobre o desempenho do SGBD. Os procedimentos
que harmonizam o paralelismo no seio do SGBD sero conhecidos por mecanismos de
controle de concorrncia.
Num cenrio de BDs distribudos, ou mesmo de BDs centralizados com acesso
distribudo, a implementao de paralelismo torna-se uma necessidade imperiosa. Com
relao ao caso centralizado, hoje so conhecidas tcnicas que equacionam os problemas
a contento, apoiadas em um tratamento terico preciso e confirmadas por implementaes
reais. No que concerne ao caso distribudo, a situao mais confusa. Isto devido, em
grande parte, ao fato de que os ns da rede operam de forma bastante independente,
embora o controle de concorrncia deva ser efetivado de forma global, abrangendo
informao que pode estar espalhada por vrios ns. Aqui, muitos dos aspectos do
problema ainda se encontram em fase de pesquisa e experimentao.

Exemplificando o problema
Quando transaes manipulam dados concorrentemente, certos problemas, chamados de
anomalias de sincronizao, podero ocorrer. Exemplos so acessos a dados
inconsistentes, perdas de atualizaes e perda da consistncia do banco. Por exemplo,
considere duas transaes, T1 e T2, ambas debitando uma determinada quantia a um
saldo S. Seja a seqncia de aes:
1) T1 l o saldo S;
2) T2 l o saldo S;
3) T2 debita a quantia, escrevendo o novo valor de S;
4) T1 debita a quantia, escrevendo o novo valor de S;
O valor final do saldo neste caso refletir apenas a quantia debitada por T1, sendo a
atualizao submetida por T2 perdida.
O exemplo acima tambm serve para ilustrar porque controle de concorrncia, embora
semelhante, no equivalente ao dilema de gerenciar acesso a recursos partilhados em
um sistema operacional. De fato, na seqncia acima, cada transao respeita o princpio
de acesso exclusivo ao objeto partilhado S. Porm, isto claramente no suficiente pois
uma atualizao perdida. Assim sendo, um mecanismo de controle de concorrncia no
dever se limitar a implementar acesso exclusivo a objetos do banco de dados.
O problema fundamental a ser resolvido pelos mtodos de controle de concorrncia
colocado da seguinte forma. Assuma que todas as transaes preservam a consistncia
lgica do banco de dados e terminam, quando executadas seqencialmente. Um mtodo
de controle de concorrncia dever, ento, garantir que em toda execuo concorrente das
transaes:

1) cada transao termina;

2) cada transao executada sem interferncia das outras, e sem que anomalias de
sincronizao ocorram.

Estes objetivos devero ser atingidos permitindo-se um mximo de concorrncia possvel,


de forma transparente para os usurios, e para qualquer conjunto de transaes acessando
qualquer parte do banco de dados.

Note que o controle de concorrncia e a gerncia de transaes so tarefas que se


complementam. Cabe ao gerente de transaes escalonar as aes de uma transao de
tal forma que esta seja processada corretamente, conforme a especificao do usurio.
Por outro lado, cabe ao mecanismo de controle de concorrncia arbitrar a intercalao das
aes de transaes diferentes de tal forma a que todas as transaes terminem, sejam
processadas sem que uma interfira com a outra e sem que anomalias de sincronizao
ocorram.

A idia do critrio de correo comumente aceito bem simples. Seja T um conjunto de


transaes. Inicialmente observa-se que uma execuo seqencial ou serial das
transaes em T, ou seja, uma execuo em que as transaes so processadas uma aps
a outra terminar, em uma ordem qualquer, necessariamente correta. Isto fcil ver pois
em uma execuo serial no h processamento concorrente.
O prximo passo postular que uma execuo concorrente E das transaes em T ser
considerada correta se for computacionalmente equivalente a alguma execuo serial das
transaes. A execuo E ser chamada neste caso de serializvel. A noo de
equivalncia computacional usada aqui exige que o estado final do banco de dados seja o
mesmo em E e S e que as transaes leiam os mesmos dados em E e S (assumindo
que E e S comeam no mesmo estado inicial do banco de dados) e, portanto, executem a
mesma computao em E e S.
A postulao deste critrio de correo para execues concorrentes justificada pois,
como S serial, as transaes em T so naturalmente executadas sem que uma interfira
com a outra. fcil justificar que anomalias de sincronizao no ocorrem em S.
Como E computacionalmente equivalente a S, as transaes so executadas em E sem
que uma interfira com a outra e sem que anomalias de sincronizao ocorram. Os
prximos exemplos ilustraro estes conceitos.
Suponha que P e C representem os saldos da poupana e da conta corrente de um
determinado cliente (armazenadas em um banco de dados centralizado, por simplicidade).
Considere duas transaes cujos efeitos desejados so:
T1: se houver saldo suficiente na poupana, transfira $5.000,00 da poupana para a conta
corrente;
T2: se houver saldo suficiente na conta corrente, debite um cheque de $10.000,00.
Suponha que a seqncia de aes elementares sobre o banco de dados gerada pela
execuo
da transao T1 (supondo que haja saldo suficiente) seja: T11: leia o saldo P para X;
X := X 5.000; T12: leia o saldo C para Y;
Y := Y + 5.000; T13: escreva o novo saldo Y em C; T14: escreva o novo saldo X em P.
Apenas aquelas aes que acessam o banco de dados receberam rtulos pois so estas que
nos interessaro a seguir. Suponha que a seqncia de aes elementares sobre o banco
de dados gerada pela execuo da transao T2 (supondo que haja saldo suficiente) por
sua vez seja:
T21: leia o saldo C para Z; Z := Z 10.000;
T22: escreva o novo saldo Z em C.
Primeiro considere uma execuo puramente serial em que T2 processada antes de T1.
Esta execuo pode ser abstrada pela seguinte seqncia de rtulos das operaes sobre
o banco de dados:
S = T21 T22 T11 T12 T13 T14

Certificao digital
A certificao digital o processo que, por meio de uma assinatura em um documento
eletrnico (certificado digital), identifica de forma segura uma entidade, garantindo
autenticidade, integridade e confidencialidade.
Um certificado digital um documento eletrnico que associa uma chave pblica a uma
entidade (instituio financeira, pessoa, equipamento, empresa). O certificado contm
dados que identificam a Autoridade Certificadora que emitiu o certificado e a entidade
titular do certificado, alm de informaes que identificam o prprio certificado, como o
nmero de srie, a verso e o prazo de validade.
Tipos de certificado digital
Na ICP Brasil, esto previstos 8 tipos de certificados digitais destinados a usurios finais,
sendo que 4 esto relacionados com assinatura digital (A1, A2, A3 e A4) e quatro com
sigilo (S1, S2, S3 e S4).
Os certificados de assinatura so utilizados na confirmao de identidade na WEB,
correio eletrnico, redes privadas virtuais e assinatura de documentos eletrnicos com
verificao da integridade de suas informaes. J os certificados de sigilo so utilizados
na cifragem de documentos, em base de dados, mensagens e outras informaes
eletrnicas, com a finalidade de garantir seu sigilo.
A1 e S1: gerao das chaves feita por software; chaves de tamanho mnimo de 1024
bits; armazenamento em dispositivo de armazenamento (como um HD); validade mxima
de um ano;
A2 e S2: gerao das chaves feita por software; chaves de tamanho mnimo de 1024
bits; armazenamento em carto inteligente (com chip) ou token (dispositivo semelhante
a um pendrive); validade mxima de dois anos;
A3 e S3: gerao das chaves feita por hardware; chaves de tamanho mnimo de 1024
bits; armazenamento em carto inteligente ou token; validade mxima de trs anos;
A4 e S4: gerao das chaves feita por hardware; chaves de tamanho mnimo de 2048
bits; armazenamento em carto inteligente ou token; validade mxima de trs anos.
Gerao das
Tipo Tamanho Armazenamento Validade
chaves
A1 e S1 Software 1024 bits Dispositivo de armazenamento (HD) 1 ano
A2 e S2 Software 1024 bits Carto inteligente ou token 2 anos
A3 e S3 Hardware 1024 bits Carto inteligente ou token 3 anos
A4 e S4 Hardware 2048 bits Carto inteligente ou token 3 anos

Infra-Estrutura de Chave Pblica (PKI)


Mantm a estrutura da emisso de chaves pblicas. um sistema de segurana baseado
em tecnologia de criptografia para estabelecer e garantir a confiabilidade de chaves
pblicas.
Conjunto de hardware, software, pessoas, polticas e procedimentos (sistema) necessrios
para criar, gerenciar, armazenar, distribuir e revogar certificados digitais com base na
criptografia assimtrica.
Uma PKI tem vrios componentes, incluindo usurios, CAs, certificados e diretrios. A
funo da PKI fornecer um modo de estruturar esses componentes e definir padres
para os vrios documentos e protocolos.
AUTORIDADES CERTIFICADORAS
AC - Raiz
A Autoridade Certificadora Raiz da ICP-Brasil a primeira autoridade da cadeia de
certificao. Executa as Polticas de Certificados e normas tcnicas e operacionais
aprovadas pelo Comit Gestor da ICP-Brasil. Portanto, compete AC-Raiz emitir,
expedir, distribuir, revogar e gerenciar os certificados das autoridades certificadoras de
nvel imediatamente subsequente ao seu.
A AC-Raiz tambm est encarregada de emitir a lista de certificados revogados e de
fiscalizar e auditar as autoridades certificadoras, autoridades de registro e demais
prestadores de servio habilitados na ICO-Brasil. Ele verifica ainda se as Autoridades
Certificadoras - ACs esto atuando em conformidade com as diretrizes e as normas
tcnicas estabelecidas pelo Comit Gestor.
AC - Autoridade Certificadora
Uma Autoridade Certificadora uma entidade, pblica ou privada, responsvel por
emitir, distribuir, renovar, revogar e gerenciar certificados digitais. Desempenha como
funo essencial a responsabilidade de verificar se o titular do certificado possui a chave
privada que corresponde chave pblica que faz parte do certificado. Cria e assina
digitalmente o certificado do assinante, onde o certificado emitido pela AC representa a
declarao da identidade do titular, que possui um par nico de chaves (pblica/privada).
Cabe tambm AC emitir listas de certificados revogados LCR. Alm de estabelecer e
fazer cumprir, pelas Autoridades Registradoras a ela vinculadas, as polticas de segurana
necessrias para garantir a autenticidade da identificao feita.
AR - Autoridade de Registro
Entidade responsvel pela interface entre o usurio e a Autoridade Certificadora.
Vinculada a uma AC que tem por objetivo o recebimento, validao, encaminhamento de
solicitaes de emisso ou revogao de certificados digitais s AC e identificao, de
forma presencial, de seus solicitantes.
Servio de autenticao X.509
A recomendao X.509 do ITU-T faz parte da srie de recomendaes X.500 que definem
um servio de diretrio. O diretrio , na verdade, um servidor ou conjunto de servidores
distribudos que mantm um banco de dados de informaes sobre usurios. As
informaes incluem um mapeamento entre o nome de usurio e o endereo de rede, alm
de outros atributos e informaes sobre os usurios.
O X.509 define uma estrutura para a proviso de servios de autenticao pelo diretrio
X.500 aos seus usurios. O X.509 define o formato para certificados de chave pblica. O
servio de diretrio pode servir como um repositrio de certificados de chave pblica.
Cada certificado contm a chave pblica de um usurio e assinado com a chave privada
de uma autoridade de certificao confivel. Alm disso, o X.509 define protocolos de
autenticao alternativos com base no uso de certificados de chave pblica.
O X.509 baseado no uso da criptografia de chave pblica e assinaturas digitais. O padro
recomenda o uso do RSA.
O X.509 um padro importante porque a estrutura de certificado e os protocolos de
autenticao definidos no X.509 so usados em vrios contextos, como em S/MIME, IP
Security e SSL/TSL e SET.
Conforme o padro X.509, os principais atributos do certificado digital so os seguintes:
Verso: corresponde verso do certificado;
Nmero de srie: identifica o certificado como nico dentro de uma CA;
Nome do emissor: nome X.500 da CA que criou e assinou o certificado;
Perodo de validade: datas inicial e final;
Nome do titular: nome do usurio a quem o certificado se refere;
Chave pblica do titular: chave pblica do titular, mais um identificador do
algoritmo para o qual a chave deve ser usada, juntamente com quaisquer parmetros
associados;
Identificador exclusivo do emissor: identifica exclusivamente a CA emissora do
certificado;
Identificador exclusivo do titular: identifica exclusivamente o titular do certificado;
Extenses: diversos campos com informaes adicionais;
Assinaturas: abrange todos os outros campos do certificado; contm o cdigo hash
dos outros campos, criptografados com a chave privada da CA. Inclui o identificador do
algoritmo de assinatura.

Anlise de pontos de funo


A Anlise de Pontos de Funo (APF) um mtodo-padro para a medio do
desenvolvimento de software, visando estabelecer uma medida de tamanho do software
em Pontos de Funo (PFs), com base na funcionalidade a ser implementada, sob o ponto
de vista do usurio.
Os objetivos da APF so:
Medir a funcionalidade solicitada pelo usurio, antes do projeto de software, de forma
a estimar seu tamanho e seu custo;
Medir projetos de desenvolvimento e manuteno de software, independentemente da
tecnologia utilizada na implementao, de forma a acompanhar sua evoluo;
Medir a funcionalidade recebida pelo usurio, aps o projeto de software, de forma a
verificar seu tamanho e custo, comparando-os com o que foi originalmente estimado;
Medir as funcionalidades do sistema requisitadas e recebidas pelo usurio;
Medir projetos de desenvolvimento e manuteno de software, sem se preocupar com
a tecnologia que ser utilizada na implementao.
Quantifica o produto do trabalho de desenvolvimento e manuteno de sistemas no que
diz a respeito de funes efetivamente entregues ao usurio final, independente da
metodologia e ferramentas utilizadas.
Define uma medida utilizada para determinar o tamanho de uma aplicao. Ela se baseia
nas funes executadas pela aplicao do ponto de vista do usurio.
Funes de dados: representam as funcionalidades relativas aos requisitos de dados
internos e externos aplicao.
Arquivos Lgicos Internos (ALI): Grupo lgico de dados do ponto de vista do
usurio cuja manuteno feita internamente na aplicao (so as tabelas do banco de
dados).
Arquivos de Interface Externa (AIE): Grupo lgico de dados que passa de uma
aplicao para outra cuja manuteno pertence a outra aplicao. Ex.: WebService
(SOA); nota fiscal eletrnica (dados so adicionados ao banco de dados da Receita
Federal).
Funes transacionais: representam as funcionalidades de processamento de dados do
sistema fornecidas para o usurio.
Entradas Externas (EE): Processo elementar que processa os dados ou informaes
de controle vindos de fora da fronteira da aplicao. A principal inteno de uma EE
manter um ou mais ALI e/ou alterar o comportamento do sistema. A criao de EE requer
vrias Consultas Externas (possivelmente), como EE para recuperar dados do cliente e
EE para recuperar a lista de produtos. Ex.: formulrios de cadastro.
Sadas Externas (SE): Processo elementar que gera dados ou informaes de controle
que saem da fronteira da aplicao. O principal objetivo de uma SE apresentar dados ao
usurio por meio de lgica de processamento que no seja apenas recuperao dados. A
lgica de processamento deve obrigatoriamente conter ao menos uma frmula
matemtica ou clculo, ou criar dados derivados. Podem tambm manter um ou mais
ALIs e/ou alterar o comportamento do sistema. Ex.: relatrios contendo totalizaes de
dados; relatrios que tambm atualizam arquivos; consulta com apresentao de dados
derivados ou clculos; gerao de arquivos de movimento para outra aplicao;
informaes em formatos grficos. No so exemplos: consultas e relatrios sem nenhum
totalizador, que no atualiza ALI, no tem dado derivado ou modificam o comportamento
do sistema; dois relatrios iguais, apenas com distino de ordenao.
Consulta Externa (CE): Processo elementar que envia dados ou informaes de
controle para fora da fronteira da aplicao. O principal objetivo de uma CE apresentar
informao ao usurio por meio de uma simples recuperao de dados de ALIs e/ou AIEs.
A lgica de processamento no deve conter frmula matemtica ou clculo, criar dados
derivados, manter um ou mais ALI e/ou alterar o comportamento do sistema.
Procedimento para a medio
1. Identificar e enumerar as funes da aplicao: nmero de EE, SE, ALI, AIE e CE;
2. Classificar cada uma das funes identificadas no seu nvel de complexidade: simples,
mdio ou complexo;
3. Clculo de Pontos de Funo Brutos ou No Ajustados (PFB);
4. Determinao do FA (Fator de Ajuste) atravs dos NI (Nveis de Influncia) pela
frmula FA = 0,65 + (0,01 * NI);
5. Clculo dos Pontos de Funo Ajustados (PFA) determinado pela frmula PFA = PFB
* FA;
6. A partir do PFA possvel fazer as verificaes para determinar o tamanho da equipe,
custo e prazo do software.

Nveis de Influncia
1. Comunicao de dados 0 = No existe nenhuma influncia
2. Funes distribudas 1 = Pouca influncia
3. Desempenho 2 = Influncia moderada
4. Carga de configurao 3 = Influncia mdia
5. Volume de transaes 4 = Influncia significativa
6. Entrada de dados on-line 5 = Grande influncia
7. Eficincia do usurio final
8. Atualizao on-line
9. Processamento complexo
10. Reutilizao
11. Facilidade de implantao
12. Facilidade operacional
13. Mltiplos locais
14. Facilidade de mudana

Tipo de N de Complexidade
Funo ocorrncias Total
4 Simples X7= 28
0 Mdia X 10 = 0
ALIs
0 Complexa X 15 = 0
Subtotal = 28
AIEs 4 Simples X5= 20
0 Mdia X7= 0
0 Complexa X 10 = 0
Subtotal = 20
4 Simples X3= 12
2 Mdia X4= 8
EEs
1 Complexa X 6 = 6
Subtotal = 26
4 Simples X4= 16
2 Mdia X5= 10
SEs
0 Complexa X 7 = 0
Subtotal = 26
5 Simples X3= 15
0 Mdia X4= 0
CEs
0 Complexa X 6 = 0
Subtotal = 15
Total de Pontos de Funo Brutos (no ajustados) = 115

Logs de eventos do Windows


Aplica-se a: Windows 7, Windows Server 2008 R2, Windows Vista
O Windows Vista inclui duas categorias de logs de eventos: Logs do Windows e logs
de Aplicativos e Servios. Voc pode usar Visualizador de Eventos ou a ferramenta de
linha de comando wevtutil para gerenciar logs de eventos. Ao usar wevtutil para gerenciar
logs de eventos, as mensagens recebidas de wevtutil podem se referir aos logs de eventos
como canais. Na maioria dos casos, logs de eventos e canais so equivalentes. Para obter
mais informaes sobre logs de eventos e canais, consulte o tpico Logs de evento e
canais no Log de Eventos do Windows no SDK (Kit de Desenvolvimento de Software)
de Log de Eventos do Windows online.
Logs do Windows
A categoria Logs do Windows inclui os logs disponveis em verses anteriores do
Windows: Aplicativo, Segurana e Sistema. Ela tambm inclui dois novos logs: de
Instalao e ForwardedEvents. Os logs do Windows tm como finalidade armazenar
eventos de aplicativos herdados e eventos que se aplicam ao sistema inteiro.
Log Aplicativo
O log Aplicativo contm eventos registrados por aplicativos ou programas. Por exemplo,
um programa de banco de dados pode registrar um erro de arquivo no log do aplicativo.
Os desenvolvedores de programa decidem quais eventos registrar em log.
Log Segurana
O log Segurana contm eventos como tentativas de logon vlidas e invlidas, assim
como eventos relacionados ao uso de recursos, como criar, abrir ou excluir arquivos ou
outros objetos. O administrador pode especificar os eventos que sero registrados no log
de segurana. Por exemplo, se voc tiver habilitado a auditoria de logon, as tentativas de
logon no sistema sero registradas no log de segurana.
Log Instalao
O log Instalao contm eventos relacionados instalao do aplicativo.
Log Sistema
O log Sistema contm eventos registrados pelos componentes de sistema do Windows.
Por exemplo, se um driver ou outro componente do sistema no for carregado durante a
inicializao, essa falha ser registrada no log do sistema. Os tipos de eventos registrados
pelos componentes do sistema so determinados previamente pelo Windows.
Log ForwardedEvents
O log ForwardedEvents usado para armazenar eventos coletados de computadores
remotos. Para coletar eventos de computadores remotos, preciso criar uma inscrio de
evento. Para saber mais sobre inscries de evento, consulte Assinaturas em eventos.
Logs Aplicativos e Servios
Os logs Aplicativos e Servios so uma nova categoria de log de evento. Esses logs
armazenam eventos de um nico aplicativo ou componente, em vez de eventos que podem
ter impacto sobre o sistema inteiro.
Essa categoria de log inclui quatro subtipos: logs Admin, Operacional, Analtico e
Depurao. Os eventos dos logs Admin so especialmente interessantes para profissionais
de TI que usam o Visualizador de Eventos para solucionar problemas. Os eventos do log
Admin devem fornecer diretrizes sobre como solucion-los. Os eventos do log
Operacional tambm so teis para profissionais de TI, mas provavelmente exigiro mais
interpretao.
Os logs Admin e Depurao no so de fcil compreenso para o usurio. Os logs
Analticos armazenam eventos que acompanham um problema e, frequentemente, um
grande volume de eventos registrado. Os logs de Depurao so usados pelos
desenvolvedores ao depurar aplicativos. Os logs Analticos e de Depurao ficam ocultos
e desabilitados por padro. Para que os logs sejam visveis, siga as etapas em Mostrar ou
ocultar logs analticos e de depurao. Para habilitar esses logs, siga o procedimento
indicado em Habilitar logs analticos e de depurao.
Admin
Esses eventos so destinados principalmente a usurios finais, administradores e pessoal
de suporte. Os eventos encontrados nos canais Admin indicam um problema e uma
soluo bem definida que pode ser usada pelo administrador. Um exemplo de evento de
administrador o ocorrido quando um aplicativo no se conecta a uma impressora. Esses
eventos so bem documentados ou possuem uma mensagem associada que fornece
instrues diretas ao leitor sobre o que precisa ser feito para retificar o problema.
Operacional
Os eventos Operacionais so usados para analisar e diagnosticar problemas ou
ocorrncias. Eles podem ser usados para disparar ferramentas ou tarefas com base no
problema ou ocorrncia. Um exemplo de evento operacional a adio ou remoo de
uma impressora do sistema.
Analtico
Os eventos Analticos so publicados em grande volume. Eles descrevem a operao do
programa e indicam problemas que no podem ser solucionados com a interveno do
usurio.
Depurao
Os eventos de Depurao so usados pelos desenvolvedores para solucionar problemas
em programas.
Infraestrutura com base em XML
A infraestrutura que sustenta o log de eventos foi completamente reformulada no
Windows Vista. As informaes de cada evento correspondem a um esquema XML, e
voc pode acessar o XML representando um determinado evento. Tambm possvel
montar consultas XML a logs de eventos. No necessrio conhecer XML para usar os
novos recursos disponveis. O recurso Visualizador de Eventos permite que voc acesse
a funcionalidade em um formato grfico fcil de usar.
Recursos adicionais

Mostrar Formato XML de Exibio Personalizada

Habilitar logs analticos e de depurao

Mostrar ou ocultar logs analticos e de depurao

REGISTRO DO WINDOWS
O registro na verdade um banco de dados do sistema que armazena todas as
configuraes dos aplicativos que instalamos. Sempre que trocamos um papel de parede,
instalamos um reprodutor de vdeo ou trocamos o nosso navegador padro de internet,
efetuamos modificaes nesse banco de dados para que o Windows as salve e saiba como
queremos que ele funcione.

Quando abrimos o Editor de Registro do Windows (digitando "regedit" no campo de


busca do Menu Iniciar) estamos na verdade abrindo uma interface que rene cinco
arquivos localizados na pasta "C:Windowssystem32config", que juntos armazenam todas
as configuraes do sistema.

Chaves de registro:
Todas essas configuraes so editadas atravs de chaves, tambm conhecidas como
Hives, que so a unidade padro de informao do registro. Por padro, o Windows utiliza
de 5 a 7 chaves principais que se subdividem em vrias outras de uma forma semelhante
s pastas que estamos acostumados no Windows Explorer, cada uma referente
configurao de uma parte do sistema acompanhado de uma chave. Cada uma dessas sub-
chaves possui um valor, e a mudana aqui o que efetivamente realiza uma alterao. No
Windows 7 temos cinco chaves principais:

HKEY_CLASSES_ROOT (HKCR): presente nas verses atuais do Windows apenas


para manter a compatibilidade com programas mais antigos, da gerao 16 bits (dos
tempos do DOS), HKEY_LOCAL_MACHINESOFTWAREClasses.

HKEY_CURRENT_USER (HKCU): uma sub-chave de HKEY_USERS, contendo


todas as configuraes do usurio logado no sistema.

HKEY_LOCAL_MACHINE (HKLM): chave mais importante do registro, guarda


todas as informaes que o sistema operacional precisa para funcionar e de sua interface
grfica. Utiliza o arquivo SYSTEM para armazenar essas configuraes.

HKEY_USERS (HKU): guarda as configuraes de aparncia do Windows e as


configuraes efetuadas pelos usurios, como papel de parede, protetor de tela, temas e
outros, utilizando o arquivo USER para armazenar essas informaes.
HKEY_CURRENT_CONFIG (HKCC): salva os perfis de hardware utilizados pelo
usurio. Como normalmente s utilizado um perfil, o valor da chave
HKEY_LOCAL_MACHINECONFIG00.

Backup manual do registro:


Clique em "Arquivo" e depois em "Exportar" para salvar uma cpia do estado atual do
registro. Caso o seu computador comece a apresentar problemas futuramente, basta
restaurar esse arquivo clicando em "Arquivo" e "Importar". Alguns programas de limpeza
de registro, como CCleaner e Advanced SystemCare Free fazem isso aps a sua varredura
para ter uma cpia de segurana caso alguma chave importante seja deletada.

Desfragmentao e Limpeza:
O uso normal do computador causa fragmentao das informaes no registro da mesma
forma que acontece com os discos rgidos, sendo altamente recomendado desfragment-
lo com uma certa frequncia para manter o seu computador sempre com o mximo
desempenho. O mesmo acontece com o seu tamanho, pois quando mudamos alguma
configurao ou desinstalamos algum programa o Windows no remove as chaves
inutilizadas (conhecidas como chaves rfs) do jeito que deveria.

Para isso, existem alguns programas especialistas nessa funo, como o Auslogics
RegistryCleaner, CCleaner, Advanced SystemCare Free, Comodo System Cleaner, Mr.
RegClean, MV RegClean e outros.

Desabilitar a reinicializao automtica


aps a instalao de novas atualizaes:
Um comportamento que frusta bastante muitos usurios a reinicializao automtica do
Windows, pois ela costuma acontecer antes de termos tempo de salvar o que estamos
fazendo ou mesmo quando no estamos por perto.

Se voc tambm se incomoda com essa caracterstica, acesse a chave:

HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftWindowsWindowsUpdateAU

E altere o valor que aparece em NoAutoRebootWithLoggedOnUsers de 0 para 1.

O QUE ITIL
ITIL (Information Technology Infrastructure Library) o framework para
gerenciamento de servios de TI (ITSM) mais adotado mundialmente. A utilizao das
melhores prticas contidas na ITIL V3 (verso atual) ajuda as organizaes a atingirem
seus objetivos de negcio utilizando apropriadamente os servios TI.
A ITIL foi desenvolvida no final dos anos 80 pelo governo britnico, primeiramente
como CCTA (Central Computer and Telecommunications Agency) e futuramente pela
OGC (Office of Government Commerce), a partir da necessidade do governo de ter seus
processos organizados na rea de TI. O resultado foi a juno dos melhores processos e
prticas para ancorar a gesto dos servios de TI. Foram levadas em conta as experincias
acumuladas por organizaes pblicas e privadas de diversos pases.
Durante a dcada de 90, vrias organizaes europeias privadas passaram a adotar essas
melhores prticas, o que acabou popularizando as publicaes. Hoje, j na verso 3, a
ITIL uma marca mantida pela empresa Alexos, uma joint venture entre a UK Cabinet
Office e a Capita, uma empresa especializada em gesto de processos de negcio.
Veja abaixo uma aula que explica bem o que ITIL V3.
Para se ter uma definio de o que ITIL importante entender que ela organizada
em torno do ciclo de vida de um servio dentro de uma organizao e contm os seguintes
volumes:
Estratgia do Servio (Service Strategy): Definio dos requisitos e necessidades
do negcio

Projeto de Servio (Service Design): Definio da soluo a ser adotada

Transio de Servio (Service Transition): Relacionado ao gerenciamento de


mudanas

Operao do Servio (Service Operation): Assegura que os servios esto sendo


atendidos baseado nos SLAs

Melhoria Contnua do Servio (Continual Service Improvement): Manter a


constante melhoria dos servios baseando-se no cliclo PDCA.
Dentre os principais benefcios do uso do modelo ITIL V3 podemos mencionar:
Alinhamento de TI, seus servios e riscos com as necessidades do negcio
Nveis de Servio (SLA) negociveis

Processos consistentes e previsveis

Eficincia na entrega de servio

Servios e Processos mensurveis e passveis de melhorias

Otimizao da experincia do cliente


Uma linguagem comum

1. 1. INTRODUO
Na comunicao entre computadores essencial que um
conjunto de regras seja estabelecido, afinal as entidades,
sejam elas desktops, servidores, aparelhos de telefonia ou
qualquer outro dispositivo conectado em rede, nem sempre se
comunicam atravs da mesma linguagem. Assim sendo, um
protocolo de rede um conjunto de regras e padres utilizado
para possibilitar a comunicao entre dispositivos diferentes.
O objetivo deste trabalho apresentar o modelo conceitual de
comunicao entre computadores, e sua aplicao prtica. Os
protocolos escolhidos para serem apresentados so os mais
utilizados no mercado na mais abrangente rede do mundo: a
Internet.
Como as redes so formadas de vrios componentes, fsicos e
lgicos, a comunicao estabelecida atravs de
camadas. Desta maneira, a comunicao estabelecida
atravs de pilhas de protocolos. As camadas de rede so
abordadas no tpico 2. Nesta seo so discutidas as
arquiteturas de rede mais comuns e, especialmente, a
arquitetura OSI e uma comparao desta com o modelo
prtico TCP/IP.
Os protocolos so formados por elementos-chave que os
identificam e que definem como estas regras sero
interpretadas pelas entidades componentes da comunicao.
Estes elementos so discutidos em detalhes na seo 3. Nesta
seo ainda so apresentadas as classificaes dos protocolos,
ou seja, a finalidade de cada tipo de protocolo considerando o
modelo de 4 camadas usado na internet.
A seo 4 traz as consideraes finais aps a pesquisa nestes
assuntos e os apontamentos relativos importncia dos
protocolos e padronizao de camadas para o surgimento de
grandes redes, inclusive para o surgimento da Internet.
1. 2. ARQUITETURA EM CAMADAS
A arquitetura em camadas pode ser facilmente entendida
atravs de exemplos do dia-a-dia. A figura abaixo ilustra uma
troca de correspondncia entre amigos para exemplificar
como os dispositivos de rede utilizam as camadas para trocar
mensagens:
Figura 1: Exemplo de comunicao [1]
Atravs deste exemplo possvel extrair tambm que as aes
devem seguir uma certa hierarquia, ou seja, ordem de
acontecimento, para que a comuincao seja efetivada. Ou
seja, no possvel classificar e enviar a carta ao receptor
antes que esta seja escrita pelo emissor.
O modelo de referncia OSI foi criado pela ISO em 1978 para
ser um sistema de conexo entre dispositivos atravs da
padronizao de protocolos e padres. Desde 1984, este o
padro mundial em modelo conceitual. Este modelo
apresenta a esquematizao de trabalho conjunto entre
hardware e software para possibilitar a comunicao entre
dispositivos. O modelo OSI , porm, um modelo muito mais
terico que prtico [6]
A figura abaixo representa as camadas do modelo OSI, que
sero descritas uma a uma:
Figura 2: Modelo OSI [7]
Camada de aplicao: representa a comunicao com os
usurios e fornece servios bsicos de comunicao. Os
aplicativos que costumam estar nesta camada so bancos de
dados, e-mail, FTP e HTTP. Esta aplicao serve como uma
janela de acesso entre os aplicativos e os servios da rede.
Camada de apresentao: responsvel por definir o
formato da troca de dados entre os computadores. Funciona
no papel de um tradutor para os protocolos, a criptografia,
compresso d edados e outras tarefas.
Camada de sesso: uma sesso um canal de comunicao
entre duas aplicaes que esto sendo executadas em
computadores diferentes. A camada de sesso responsvel
por gerenciar o dilogo entre os aplicativos de forma que estas
possam abrir, usar e fechar uma sesso. nesta camada que
so executadas as funes de reconhecimento de nomes e
segurana.
Camada de transporte: responsvel pela integridade dos
pacotes de informao, garantindo uma comunicao
confivel. Esta integridade possvel graas ao envio de sinais
ACK entre as partes (sinais confirmando que a comunicao
foi foita corretamente, enviado do receptor ao transmissor).
nesta camada que opera o protocolo TCP.
Camada de rede: usada para identificar os endereos dos
sistemas na rede, e para transmitir os dados de fato. A
camada de rede deve conhecer o meio fsico da rede e
empacotar a informao de tal modo que a camada de link
possa envi-la para a camada fsica. Em muitas redes esta
camada no verifica a integridade da informao,
simplesmente executando o empacotamento da informao.
Camada de link ou MAC: usada para definir como a
informao ser transmitida pela camada fsica e garantir o
bom funcionamento desta camada. Havendo algum erro na
transmisso da informao no meio fsico, como rompimento
de um cabo ou colises de dado, a camada MAC deve tratar
estes erros ou comunicar s camadas superiores deste fato.
Camada fsica: formada pelo hardware usado na conexo
dos diferentes sistemas de rede, como cabos, fibras e
conectores. Nesta camada a informao est codificada na
forma de sinais eltricos.
Desta forma, a rede consiste de sucessivos
encapsulamentos de protocolos, de tal maneira que um
protocolo de nvel superior corresponde aos dados e um nvel
inferior, sendo este o carrier da informao [8]. O
funcionamento desta sucesso de protocolos por camada
representado na imagem abaixo:
AH = Application Header (Cabealho do protocolo de
aplicao);
PH = Presentation Header (Cabealho do protocolo de
Apresentao);
SH = Session Header (Cabealho do protocolo de Sesso);
TH = Transport Protocol (Protocolo de Trasporte);
NH = Network Protocol (Protocolo de Rede)
DH = Data Link Protocol (Protocolo de Elo de Dados)
DATA = Os dados transferidos
DT = Data Termination (Sinalizador de final de pacote)
Figura 3: Transmisso de dados por protocolos [8]
Quando novos fabricantes desenvolvem seus produtos de
rede, baseiam-se no modelo OSI, garantindo que sistemas
diferentes possam se comunicar. Porm, existem ainda
produtos que foram criados antes da aceitao do modelo
OSI, e que seguem seus prprios modelos.
2.2. Arquitetura TCP/IP
O modelo utilizado na Internet o modelo de 4 camadas,
tambm chamado TCP/IP (os protocolos do padro de
internet sero apresentados na seo 3). O modelo abaixo
apresenta as diferenas entre as camadas da arquitetura OSI e
do TCP/IP:
Figura 4: Comparao das camadas [9]
A camada de aplicao corresponde s camadas de
aplicao, apresentao e sesso do modelo OSI. Esta camada
conecta as aplicaes rede e nela que esto os protocolos
de aplicao cliente/servidor. na camada deaplicao que
tem incio o processo de transmisso de dados. acessada por
duas interfaces de transporte: Windows Sockets e NETBIOS.
Alguns dos protocolos que formam esta camada so SMTP
(Simple Mail Transfer Protocol), HTTP (HyperText Transfer
Protocol), FTP (File Transfer Protocol) e DNS (Domain Name
System). Quando um programa cliente de email executa o
comando de verificar novas mensagens, por exemplo, este
pedido ser feito para a camada de Aplicao do TCP/IP e
ser atendido pelo protocolo SMTP. Quando um endereo
Web acessado atravs do navegador de internet, este ir se
comunicar com a camada de aplicao do TCP/IP e ser
atendido pelo protocolo HTTP.
A camada de aplicao comunica-se com a camada de
transporte atravs de uma porta. As portas so numeradas e
as aplicaes padro utilizam sempre a mesma porta. O SMTP
utiliza sempre a porta 25, o HTTP utiliza a porta 80 e o FTP
utiliza as portas 20 e 21. O uso de portas importante para
que o protocolo de transporte identifique qual o tipo de
contedo do pacote de dados e para que o receptor identifique
para qual aplicao o pacote dever ser enviado.
A figura abaixo ilustra a comunicao atravs de portas:
Figura 5: Comunicao entre portas [9]
A camada de transporte do modelo TCP/IP corresponde
camada homnima do modelo OSI. Esta camada grante a
comunicao entre os hosts e transmite dados entre a camada
de aplicao e a camada de internet, transformando os dados
em pacotes. Tem como funes:
Reconhecimento de recebimento de pacotes
Controle de fluxo
Sequenciamento de pacotes
Retransmisso de pacotes
Nas redes TCP/IP cada computador identificado com
um endereo virtual nico (o endereo IP). A funo da
camada de Internet adicionar um cabealho ao pacote de
dados em que, alm de alguns dados de controle, contm os
endereos IP do transmissor e do receptor.
A camada de Interface com a Rede corresponde s
camadas de link, dados e fsica do modelo OSI. Esta camada
responsvel pelo envio dos datagramas construdos na
camada de internet como meio fsico. Os aspectos fsicos da
camada de interface com a rede e os protocolos utilizados
dependem do tipo de rede fsica em que est certo dispositivo.
O tipo mais comum de rede, tanto cabeada quanto wireless,
a Ethernet.
2.1.2. O modelo Ethernet
As redes Ethernet podem transportar at 1.500 bytes de
dados. Por isso, o sistema operacional configura o protocolo
IP automaticamente para criar datagramas com 1.500 bytes
ao invs de 65.535 (o tamanho real dos datagramas 1.497,
pois a camada LLC utiliza 3 ou 5 para adicionar seu
cabealho). O modelo Ethernet possui trs camadas, que so
equivalentes Interface com a Rede do modelo TCP/IP:
Figura 6: Camadas Ethernet [9]
A camada LLC (controle do link lgico) responsvel por
adicionar informaes sobre qual protocolo da camada
Internet foi responsvel por gerar os dados. Assim, durante a
recepo dos dados o computador receptor pode saber qual
protocolo deve utilizar na camada Internet para receber os
dados.
A camada MAC (controle de acessoao meio) responsvel por
montar o quadro que ser enviado para a rede. Esta camada
responsvel por adicionar o endereo MAC de origem e de
destino ao pacote (endereo fsico da placa de rede). Quando
os pacotes so destinados a outras redes que no a local, o
endereo MAC inserido como destino ser o do roteador que
ser utilizado. Os protocolos que definem esta camada so o
IEEE 802.3 para redes com cabos fsicos e IEEE 802.11 se for
uma rede wireless.
A Fsica a camada mais baixa do modelo TCP/IP. Ela
responsvel por converter o quadro gerado pela camada MAC
em sinais eltricos (no caso de redes com cabo fsico) ou
eletromagnticos (para redes wireless). No IEEE a camada
fsica definida pelos mesmos protocolos que a camada MAC.
No fim do empacotamento, o dado ir conter cabealhos de
todas as camadas do modelo TCP/IP e ainda o cabealho das
sub camadas Ethernet. Na figura abaixo apresentado um
esquema da composio do pacote e da quantidade de
informaes que compem o pacote que so relacionadas ao
dado em si (data) e as informaes de cabealhos de
protocolos:
Figura 7: Cabealhos de protocolos [9]

1. 3. PROTOCOLOS DE REDE
Os protocolos, sendo um conjunto de regras de comunicao,
so por si mesmos regidos por elementos-chave que os
definem. Estes elementos so os seguintes:
Sintaxe: o formato dos dados e a ordem segundo a qual os
dados so apresentados. Ou seja, so as regras que definem o
papel que cada posio de byte tem em termos de
funcionalidade na mensagem a gramtica da linguagem
usada na comunicao.
Semntica: o significado de cada conjunto sinttico para
dar sentido mensagem
Timing: define qual dever ser a velocidade de transmisso
dos pacotes (pedaos de mensagens). O timing visa definir
uma velocidade aceitvel de comunicao que seja suportado
por ambas entidades que esto se comunicando.
Um protocolo desempenha as seguintes funes na
comunicao:
Endereamento: especificao do ponto de destino da
mensagem
Numerao e sequncia: identificao de cada mensagem
atravs de um nmero sequencial
Estabelecimento da conexo: criao de um canal lgico
fechado (tnel) entre o transmissor e o receptor da
mensagem
Controle de erros: identificao e correo dos erros na
comunicao
Retransmisso: repetio da mensagem uando esta
repetida ou sinal ACK no recebido
Confirmao de recebimento: envio do sinal ACK quando
cada segmento da mensagem recebido
Converso de cdigo: adequao do cdigo s
caractersticas do destinatrio
Conforme mencionado anteriormente, as entidades de rede
podem no falar o mesmo idioma, ou seja, no utilizar o
mesmo protocolo para comunicao. Desta forma, faz-se
necessrio o uso de um tradutor para estabelecer a conexo.
Os gateways, entre outras funes, desempenham o papel de
estabelecimento de comunicao em uma rede com
heterogenia de protocolos. Um gateway pode ser um
computador pessoal com mais de uma placa de rede ou ento
um dispositivo dedicado. Quando se configura uma rede que
ir usar um gateway para estabelecer a comunicao,
necessrio configurar o endereo deste equipamento para
permitir o acesso das mquinas rede.
Para cada tipo ou conjunto de protocolos definido um
padro. Existem dois tipos de padres:
de facto: so padres que so usados pela comunidade,
principalmente por fabricantes quando lanam novos
produtos, mas que ainda no foram aprovados por um comit
reconhecido, como ISO ou ANSI. Um exemplo o protocolo
IP.
de jure: so padres ou protocolos que foram reconhecidos
por comits reguladores. Um exemplo a arquitetura OSI.
Estes padres de jure j passaram pelo status de facto e
tiveram suas especificaes submetidas a um corpo avaliador
no formato RFC (request for change), at que tiveram sua
verso final aprovada.
3.1. Protocolos de camadas da Internet
O conjunto de protocolos utilizados para a comunicao entre
computadores atravs da Internet, tambm chamado de
conjunto TCP/IP, foi desenvolvido pelo Departamento de
Defesa do governo Norte-Americano para permitir a
comunicao entre diferentes redes, compostas por vrios
tipos de computador. A famlia de protocolos TCP/IP
especialmente popular por no ser proriedade de nenhum
fornecedor especfico. Assim sendo, amplamente suportado
no mercado. Existem protocolos especficos para cada camada
do modelo, e a figura abaixo ilustra a classificao destes
protocolos:
Figura 8: Protocolos por camada. [10]
3.1.1. Protocolo HTTP
O HTTP um protocolo da camada de aplicao que utiliza a
porta de rede 80. Ele permite a transferncia de dados na
forma de textos simples, hipertexto, udio, vdeo e outras.
usado em ambientes onde h transies rpidas de um
documento para outro, como pginas de internet.
Este protocolo tem caractersticas parecidas com os
protocolos FTP e SMTP, que permite a transferncia de
arquivos usando servios do TCP. Ele , porm, muito mais
simples que o FTP e utiliza apenas uma conexo TCP, da
porta 80. Atravs desta porta os dados so transferidos entre
cliente e servidor.
As mensagens HTTP no se destinam diretamente ao usurio.
Estas so interpretadas pelo cliente HTTP o navegador. A
ideia do HTTP um cliente enviar um pedido, na forma de
mensagem, ao servidor, e o servidor enviar a resposta,
tambm na forma de mensagem, ao cliente.
3.1.4. Protocolo TCP
O protocolo TCP fornece o servio de entrega de dados
orientados conexo de maneira confivel e full-duplex, ou
seja, antes de transmitir os dados necessrio que haja uma
conexo estabelecida. O processo de conexo conhecido
como three-way-handshake e ocorre da seguinte maneira:
1) A origem inicia a conexo enviando um pacote do
tipo SYN que contm o nmero da porta que se deseja usar na
conexo e o nmero de sequncia inicial
2) O destino reconhece um sinal do tipo ACK, que
consiste do pacote SYN de origem mais um
3) A origem reconhece o ACK com o nmero do sinal
SYN do destino mais um
A transmisso de pacotes feita em grupos, e a cada pacote
atribudo um nmero de sequncia e uma confirmao de
recebimento usada para garantir que o destino recebeu o
pacote. Caso a origem no receba a confirmao, o pacote
reenviado. comum que os pacotes cheguem fora de ordem a
destino, o que refora a necessidade de numerao correta
dos pacotes.
O janelamento TCP consiste na regulagem da quantidade de
informao que pode ser transmitida por uma conexo TCP
antes que um ACK seja recebido. A grante vantagem do TCP
a confiabilidade.
3.1.5. Protocolo UDP
Este protocolo no orientado conexo e, portanto, no
reconhecido como confivel. No h garantia de que os dados
foram realmente recebidos pelo destino, sendo adequado para
pequenas quantidades de dados em que a garantia de entrega
no mandatria. Alguns exemplos deste tipo de uso so os
broadcasts e os multicasts, como videoconferncias.
As portas usadas pelo UDP no so as mesmas do TCP, e o
UDP tem a transmisso mais rpida.

Protocolo IP
Este protocolo responsvel pelo endereamento do pacote a ser transmitido,
adicionando um cabealho que permite o roteamento do pacote pela rede at que este seja
entregue no destino correto. Em um pacote IP esto os endereos IP da origem e do
destino, um identificador de protocolo, um valor calculado para verificar erros e um TTL
(informao em segundos do tempo que o pacote poder permanecer na rede, evitando
loop infinito de trfego).

Protocolos de roteamento
O roteamento de pacotes pode ser esttico ou dinmico. Nas redes locais pequenas
utilizado o roteamento esttico, ou seja, o caminho percorrido pelos datagramas para
alcanarem seu destino sempre o mesmo. Na Internet, o roteamento feito dinmico,
ou seja, os roteadores podem mudar a rota dos pacotes a qualquer momento caso hajam
caminhos melhores para alcanar um destino. A melhor rota aquela em que forem
necessrios menos saltos (roteadores intermedirios), porm no necessariamente rotas
mais curtas so mais rpidas.

RIP
O protocolo RIP (Routing Information Protocol) utiliza a porta 520 do UDP. Atravs
deste protocolo, os roteadores enviam suas tabelas de roteamento para todos os outros
roteadores a que tm acesso a cada 30 segundos. Esta tabela contm todas as redes que
cada roteador conhece e o caminho para alcan-las, alm da quantidade de saltos at
elas. desta maneira que um roteador pode descobrir se h um caminho mais curto para
o destino de um pacote a cada momento.
O problema do protocolo RIP que nem sempre o caminho mais curto o mais rpido, e
por isso um caminho eficiente pode ser trocado por outro curto, mas mais demorado.
Tambm no verifica se h congestionamento no caminho.

OSPF
O protocolo OSPF no busca pelo caminho mais curto, mas pelo maisrpido. Para isso,
os roteadores enviam aos outros mensagens chamadas hello assim, possvel saber
quais roteadores da rede esto ativos e em que estado. Este protocolo tambm permite o
balanceamento da carga, ou seja, se houver mais de uma rota para um destino, possvel
dividir os datagramas e reduzir o trfego em cadaum dos caminhos.
O OSPF funciona na camada internet juntamente com o protocolo IP. Assim, ele no
utiliza o protocolo TCP nem o UDP.
BGP
Este o protocolo utilizado pelos roteadores de Internet, sendo classificado como
protocolo externo(tanto o RIP quanto o OSPF so considerados protocolos internos). O
BGP agrupa roteadores e computadores sob uma mesma administrao como uma
unidade chamada Sistema Autnomo (SA).
O BGP chamado de IBGP quando se trabalha dentro de um sistema autnomo, e EBGP
se trabalha entre sistemas autnomos diferentes.
Este protocolo muito mais complexo que os mencionados anteriormente, j que usa
diversos critrios para determinar a melhor rota a ser tomada. Ele utiliza a porta 179 do
TCP.

Consideraes finais

O mundo como conhecemos hoje, em que o conhecimento global e no existem


barreiras geogrficas delimitando o alcance de pesquisas, s se tornou possvel graas ao
surgimento da Internet. E este surgimento s foi possvel a partir do momento em que as
empresas aceitaram adotar um padro para a comunicao entre computadores.
As organizaes que regulam os padres de indstria, como IEEE e ISO, tm um papel
fundamental ao certificar certos padres para que os fabricantes sejam incentivados a
produzir equipamentos compatveis entre concorrentes. Com os padres aceitos como
suportados por diversas empresas, arquivos podem ser trocados entre quaisquer cidados
do mundo.
As pesquisas em desenvolvimento de protocolos mais seguros e mais eficientes
continuam, j que estamos em um tempo em que a segurana e a economia de recursos
fsicos necessrios para transportar os dados so prioridades. A Google tem trabalhado
no desenvolvimento do SPDY, protocolo open source que funciona na camada de
aplicao e visa substituir tanto o HTTP quanto o TCP. O laboratrio Chromium
responsvel por este desenvolvimento. O principal concorrente deste protocolo o
Bayeux, desenvolvido pela Dojo no projeto Comet. O Bayeux executado sobre o HTTP,
ao invs de substitu-lo como faz o SPDY. Ainda no se sabe qual dos dois novos
protocolos iro formar a nova camada de aplicao (ou aplicao e transporte) de internet
nos prximos anos, mas pelo estado da arte das pesquisas j pode-se notar que a segurana
e a eficincia tm sido o principal fator de escolha de um certo padro.

You might also like