Você está na página 1de 157

Parte I - Conceitos Básicos – Professor Luis Octavio

CPC - Parte I - Conceitos Básicos

Capítulo I – Processamento de Dados,Sistema de Numeração e Álgebra Booleana


1. Introdução
1.1. Processamento de Dados
Processamento de Dados é o ato de transformar a entrada de um dado (pergunta) em uma saída de
informações (respostas). É o processo de receber dados, manipula-los e produzir resultados. Sendo assim,
processamento de dados é todo ato de realizar, conferir e verificar o processo de transformação de dados, com o
objetivo de se obter resultados através de dados iniciais.
1.2. Etapas do Processamento
Para que os dados sejam transformados em informações, ou seja, para que aconteça o processamento, é
necessário que o processamento passe pelas seguintes etapas:

Entrada de Processamento Saída de


Dados de Dados Informações

1.3. Informática
Informática é a ciência que estuda como as informações são coletadas (dados), organizadas, tratadas e
comunicadas. Essa ciência busca meios para obter maior rapidez no processamento e maior proteção (segurança)
para as informações geradas através do mesmo.
1.4. O Computador
O computador é uma máquina que realiza processamento de dados em um menor espaço de tempo e com
maior segurança, auxiliando com isso a informática. Outro conceito muito utilizado é que o computador é um
equipamento capaz de obedecer a instruções que alterem seus dados da maneira desejada, e de realizar pelo
menos algumas dessas operações sem a intervenção humana.
1.5. Funções Básicas do Computador
 Entrada de dados;
 Processamento de dados;
 Saída de informações;
 Armazenamento de informações.
1.6. Tipos de Computador
a) Computadores Analógicos: são os que processam sinais elétricos e que costumam ser aplicados a
problemas de controle de processo. O seu funcionamento é baseado na comparação de grandezas
físicas e são típicos para medição.
b) Computadores Digitais: são os que a programação e os dados são representados por meio de dígitos.
São os computadores utilizados para contagem e cálculos que exijam precisão.
1.7. Linguagem de Computador – Respresentação de Dados
Por serem máquinas os computadores trabalham com um tipo de linguagem chamada Linguagem de
Máquina. Conceitualmente, Linguagem de Máquina é a linguagem que permite que os computadores executem
tarefas específicas predeterminadas pelos seres humanos.
O computador, em sua linguagem, só considera pulsos elétricos que refletem dois estágios opostos, ligado e
desligado, como por exemplo. Para facilitar o trabalho com computadores, esses estados eletrônicos, foram
representados pelo 0 e 1, sendo o 0 representante do desligado e 1 o representante do ligado.
Acredita-se que a criação de números veio com a necessidade de contar, seja o número de animais,
alimentos, ou coisas do gênero. Como a evolução nos legou algumas características, como os cinco dedos em
cada mão e cinco dedos em cada pé, seria muito natural que os primeiros sistemas de numeração fizessem uso
das bases 10 (decimal) e 20 (vigesimal). O número 80 em francês, por exemplo, escrito como quatre-vingt (ou,
quatro vezes o vinte), é remanescente de um sistema vigesimal.
Computadores modernos, por outro lado, usam “chaves elétricas” para representar números e caracteres.
Cada chave pode estar ligada ou desligada e a combinação dos estados de um conjunto destas chaves representa
algo (número ou caracter). Visto que o “cérebro” de um computador é simplesmente um conjunto de chaves
elétricas, onde cada chave possui apenas dois estados possíveis (ligada/desligada), computadores “pensam”
Professor Luis Octavio - 1
CPC - Parte I - Conceitos Básicos
usando apenas 2 dígitos: 0 e 1 (0 para desligada e 1 para ligada). Portanto, computadores se utilizam de uma
forma de representação de dados para descrever números e caracteres na forma de um conjunto de 0s e 1s.
Linguagens humanas usam palavras que contêm um número variável de caracteres. Computadores não
possuem a capacidade de trabalhar com palavras de tamanho variável.
Por isso, suas “palavras” (representação de caracteres e números) têm um número predeterminado de
caracteres, que, na linguagem binária, são chamados de bits (binary digits). Os primeiros computadores pessoais
que se tornaram populares usavam 8 bits (1 byte- binary term) para representar uma “palavra”. Assim, o
computador sabia onde começava uma palavra e onde ela acabava apenas contando o número de bits. A partir da
evolução dos computadores, as “palavras” evoluíram para 16 bits (PC 286), 32 bits (PC 386-Pentium) e 64 bits
(maioria dos computadores de hoje). Dessa forma, uma “palavra” do computador passou a não ser mais composta
apenas por um byte, mas por 2, 4 e agora 8 bytes. Essa evolução permitiu que cada vez mais coisas pudessem
ser representadas através das palavras do computador, aumentando o número de instruções inteligíveis por ele

Binary Digit - Bit


1 0 0 1 0 1 1 1 Caractere

Binary term - Byte


2. Sistemas de Numeração
 Sistema Decimal -sistema formado por 10 dígitos.(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
 Sistema Binário - sistema formado por 2 dígitos. (0, 1)
 Sistema Hexadecimal - sistema formado por 16 dígitos. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)
 Sistema Octal - sistema formado por 8 dígitos.(0, 1, 2, 3, 4, 5, 6, 7)
Equiparações das Bases

2.1. Convertendo Bases


a) Transformando Binária em Decimal
Ex: transformar o número binário 1110 em base decimal.

(1 1 1 0)
0 x 20 =0x1=0
1 x 21 =1x2=2
1 x 22 =1x4=4 1110B => 14D
1 x 23 =1x8=8
14
Professor Luis Octavio - 2
CPC - Parte I - Conceitos Básicos
b) Transformando Octal em Decimal
Ex: transformar o número binário 2137 em base decimal.

(2 1 3 7)
7 x 80 =7x1= 7
3 x 81 =3x8 = 24
1 x 82 = 1 x 64 = 64 2137O => 1119D
2 x 83 = 2 x 512 = 1024
1119
c) Transformando Hexadecimal em Decimal
Ex: transformar o número binário CFA em base decimal.

(C F A)
10 x 160 = 10 x 1 = 10
715 x 161 = 15 x 16 = 240
12 x 162 = 12 x 256 =3072
24 CFAH => 3322D
64 3322

d) Transformando Decimal em Binária


Ex: transformar o número decimal 10 em base binária.

a) 2
0 5 2 10D = 1010B
1 2 2
0 1 Sempre forme o número de baixo para cima.

e) Transformando Decimal em Octal


Ex: transformar o número decimal 10 em base octal.

257 8
1 32 8 257D = 401O
0 4
Sempre forme o número de baixo para cima.

f) Transformando Decimal em Hexadecimal


Ex: transformar o número decimal 10 em base hexadecimal.

939 16
11 58 16 939D = 3ABO
10 3
Sempre forme o número de baixo para cima.

2.2. Aritmética das Bases


a) Adição em Decimal
13
+ 8
21
Essa operação é realizada automaticamente pelas pessoas, mas muitas vezes nos esquecemos como ela
aconteceu. Como estamos trabalhando com o sistema decimal só aceitamos números de 0 a 9 e quando obtemos
um número igual ou superior a 10, pegamos esse valor diminuímos de 10 e acrescentamos 1 na próxima casa à
esquerda (Ex: 3+8 = 11, depois 11-10 = 1(fica à direita) e vai 1 para a próxima casa a esquerda, somamos 1 (que
foi enviado) + 1 = 2, como é um número igual a 2, ficando 21)
Professor Luis Octavio - 3
CPC - Parte I - Conceitos Básicos

b) Adição em Binário
11
+11
110
O sistema binário só aceita números de 0 a 1 e quando obtemos um número igual ou superior a 2, pegamos
esse valor diminuímos de 2 e acrescentamos 1 na próxima casa à esquerda (Ex: da direita para esquerda =>
quando somamos 1+1 = 2, depois diminuímos 2-2 = 0 (fica à direita) e vai 1 para a próxima casa à esquerda,
somamos 1 (que foi enviado) + 1 +1 = 3, novamente um número superior a 2, por isso novamente diminuímos de 2
o 3 e ficará1 que será enviado 1 para próxima casa. Ficando assim, 110)

c) Adição em Octal
27
+14
43
O sistema octal só aceita números de 0 a 7 e quando obtemos na soma dos números da casa mais a direita
um número igual ou superior a 8, pegamos esse valor e diminuímos de 8 e acrescentamos 1 na próxima casa à
esquerda (Ex: da direita para esquerda => quando somamos 7+4 = 11, depois diminuímos 11-8 = 3 e vai 1 para a
próxima casa à esquerda ficando 7, temos somamos 1 (que foi enviado) + 2 + 1 = 4. Ficando assim, 43)

d) Adição em Hexadeximal
EB
+39
124
O sistema hexadecimal só aceita números de 0 a 15 (lembrando que A = 10, B = 11, C=12, D =13, E = 14 e
F = 15) e quando obtemos na soma dos números da casa mais a direita um número igual ou superior a 15,
pegamos esse valor e diminuímos de 15 e acrescentamos 1 na próxima casa à esquerda (Ex: da direita para
esquerda => quando somamos B (11)+9 = 20, depois diminuímos 20-16 = 4 e vai 1 para a próxima casa à
esquerda ficando 4, temos que somar 1 (que foi enviado) + E (14) + 3 = 18, diminuímos 18 – 16 = 2 e é enviado 1
para esquerda. Ficando assim, 124)

e) Subtração em Decimal
23
- 8
15
Quando o número de cima é inferior ao de baixo “pedimos 1 (representa 10) para podermos subtraímos,
então somamos 10 ao número de cima e diminuímos do número de baixo. Como pedimos emprestados para casa
à esquerda temos que retirar 1 da casa à esquerda (Ex: 3 < 8, sendo assim, pedimos 1 para a casa à esquerda,
então somamos 10 + 3 – 8 =5. Depois retiramos de 2 – casa à esquerda – o 1 que pedimos emprestado e fica 1.
Sendo a resposta 15)

f) Subtração em Binário
10
- 1
15
Quando o número de cima é inferior ao de baixo “pedimos 1 (representa 2) para podermos subtraímos, então
somamos 2 ao número de cima e diminuímos do número de baixo. Como pedimos emprestados para casa à
esquerda temos que retirar 1 da casa à esquerda (Ex: 0 < 1, sendo assim, pedimos 1 para a casa à esquerda,
então somamos 2 + 0 – 1 =1. Depois retiramos de 1 – casa à esquerda – o 1 que pedimos emprestado e fica 0.
Sendo a resposta 1)

g) Subtração em Octal
34
- 5
27
Quando o número de cima é inferior ao de baixo “pedimos 1 (representa 8) para podermos subtraímos, então
somamos 8 ao número de cima e diminuímos do número de baixo. Como pedimos emprestados para casa à

Professor Luis Octavio - 4


CPC - Parte I - Conceitos Básicos
esquerda temos que retirar 1 da casa à esquerda (Ex: 4 < 5, sendo assim, pedimos 1 para a casa à esquerda,
então somamos 8 + 4 – 5 =7. Depois retiramos de 3 – casa à esquerda – o 1 que pedimos emprestado e fica 2.
Sendo a resposta 27)

h) Subtração em Hexadecimal
B4
- 8
AC
Quando o número de cima é inferior ao de baixo “pedimos 1 (representa 16) para podermos subtraímos,
então somamos 16 ao número de cima e diminuímos do número de baixo. Como pedimos emprestados para casa
à esquerda temos que retirar 1 da casa à esquerda (Ex: 4 < 8, sendo assim, pedimos 1 para a casa à esquerda,
então somamos 16 + 4 – 8 = 12 (C). Depois retiramos de B (11) – casa à esquerda – o 1 que pedimos emprestado
e fica 10 (A). Sendo a resposta AC)

3. Álgebra Booleana
São operações lógicas realizadas de forma binária, onde o 1=V e o 0 =F, e cujo resultado será sempre 0 ou
1. Para matemática relacionamos a chamada de TABELA VERDADE

3.1. Operação E (AND)


Nessa operação o resultado será 1 (V) apenas quando todos os elementos são 1(V)

A
B X

X = A.B

ELEMENTOS RESULTADO
A B X = A.B
0 0 0
0 1 0
1 0 0
1 1 1

3.2. Operação OU (OR)


Nessa operação o resultado será 1 (V) quando um dos elementos pelo menos for 1(V)

A
B X

X = A+B

ELEMENTOS RESULTADO
A B X = A+B
0 0 0
0 1 1
1 0 1
1 1 1

3.3. Operação NÃO (NOT)


Nessa operação o resultado será oposto ao valor do elemento

A X

Professor Luis Octavio - 5


CPC - Parte I - Conceitos Básicos
X=A

ELEMENTO RESULTADO
A X=A
0 1
1 0
3.4. Operação NÃO E (NAND ou NOT NAND)
Nessa operação o resultado será o inverso do resultado da operação E, ou seja, o resultado do E será 1 (V)
apenas quando todos os elementos são 1(V) e o resultado do NAND será 0 e caso contrário será 1

A
B X

X = A.B

ELEMENTOS RESULTADO
A B X = A.B
0 0 1
0 1 1
1 0 1
1 1 0

3.5. Operação NÃO OU (NOR ou NOT OR)


Nessa operação o resultado será o inverso do resultado da operação OR, ou seja, o resultado do OU será 1
(V) quando um dos elementos for 1(V) e o resultado do NOR será 0 e caso contrário será 1

A
B X

X = A+B

ELEMENTOS RESULTADO
A B X = A+B
0 0 1
0 1 0
1 0 0
1 1 0

3.6. Operação OU EXCLUSIVO (XOR ou EXCLUSIVE OR)


Nessa operação o resultado será 1 (V) apenas quando um dos elementos for 1(V)

A
B X

X=A+B

ELEMENTOS RESULTADO
A B X=A+B
0 0 0
0 1 1
1 0 1

Professor Luis Octavio - 6


CPC - Parte I - Conceitos Básicos
1 1 0

Capítulo II – Organização do Computador


1. Memória-Armazenamento
1.1. Memória ROM (Read Only Memory – Memória somente para leitura)
 Armazena informações técnicas
 Somente para leitura
 Não volátil – não necessita de energia para manter o seu conteúdo
 Programas: BIOS – controla as entradas e saídas; POST – verifica a quantidade de RAM, inicia os
circuitos da placa-mãe e carrega o sistemas operacional em RAM (BOOT); SETUP – programa
que permite configurar o computador.
 Obs: a configuração fica armazenada em uma memória RAM chamada CMOS, que possui uma
bateria para manter o seu conteúdo.
 Tipos:
 Mask-ROM (Memória Somente de Leitura de Máscara): os programas já eram gravados pelo
próprio fabricante de memória;
 PROM (Programmable Read Only Memory - Memória Somente de Leitura Programável): memória
que era comprada virgem do fabricante e onde os fabricantes de computadores colocavam os
programas de acordo com suas características.;
 EPROM (Erasable Programmable Read Only Memory - Memória Somente de Leitura Programável
Apagável): programável e reprogramável por raios ultravioletas;
 EEPROM (Electrically Erasable Programmable Read Only Memory - Memória Somente de Leitura
Programável Apagável Eletricamente): reprogramável por impulsos elétricos.
 Flash ROM (Flash Read Only Memory - Memória Somente de Leitura Flash): tipo de EEPROM,
com maior velocidades, mas que não permite escolher o que será apagado. Os computadores
atuais utilizam esta memória, o que permite que o fabricante de computador disponibilize alterações
dos programas da ROM na Internet.
1.2. Memória RAM (principal)
 Memória de Execução
 Pode ser alterada pelo usuário
 Volátil – necessita de energia para manter o seu conteúdo.
 Tipos:
 DRAM (DINÂMICA) – precisa receber constantemente impulsos elétricos para manter o seu
conteúdo e por isso possui baixo desempenho;
 SRAM (ESTÁTICA) – não precisa receber os impulsos elétricos e por isso é de alto custo e
excelente desempenho.
Obs: os computadores utilizam como memória de execução, memória do tipo DRAM.
Tecnologias de Memória DRAM
a) FPM (Memória Fast Page Mode): nesse tipo de tecnologia é armazenado o valor da última linha acessada
e com isso o acesso é mais rápido quando for feito na mesma linha.
b) EDO (Memória Extended Data Out): é a mesma arquitetura da FPM, mas os dados permanecem mais
tempo na saída de memoria e com isso o próximo endereço poderá começar a ser enviado à memoria
enquanto os dados ainda estão em sua saída.
c) SDRAM (Memória Synchronous RAM): esse tipo de memoria permite que o processador não tenha que
esperar a memoria devolver os dados, isso por ser uma memoria síncrona e suas antecedentes eram
assíncronas.
d) DDR-SDRAM (Memória Double Data Rate SDRAM): esse tipo de memoria possui a capacidade de
entregar dados tanto na subida quanto na descida do pulso de clock, ou seja, possibilita o dobro da
freqüência da SDRAM.
e) RDRAM (Memória Rambus DRAM): essa memoria possui tecnologia proprietária e seu uso depende do
pagamento de royalties à empresa Rambus, o que a torna cara e de pouca vendagem.

Tipo Freqüência
FPM Até 33 MHz
EDO 66 MHz
SDRAM 100 e 133 MHz
DDR-SDRAM DDR - 200, 266, 333, 400 MHz; DDR2 – 400, 533, 667, 800
DDR3 - 800 , 1067 ,1333 , 1667MHz e até 3 GHz
RDRAM 400, 600, 800 e 1066 MHz

Professor Luis Octavio - 7


CPC - Parte I - Conceitos Básicos
(RAMBUS)

Professor Luis Octavio - 8


CPC - Parte I - Conceitos Básicos
1.3. Memória CACHE
 Memória de altíssima velocidade (SRAM);
 Pequena quantidade;
 Agiliza o processamento.
 Volátil
 Armazena apenas as informações utilizadas com maio freqüência
 Tipos:
 L1 – colocada na CPU (CACHE INTERNO)
 L2 – até antes do Pentium II era colocada na placa mãe (CACHE EXTERNO) e posteriormente foi
colocada na CPU junto com a L1
386 486 Pentiun II

L2 CPU L2 CPU
CPU L1 L1 L2

RAM RAM RAM

Procedimento de localização de dados em RAM


1º - CPU busca o dado em L1. A localização em L1 ou L2 é chamada cache hits.
2º - Não encontrando em L1, busca em L2. A não localização em cache é chamada cache miss.
3º - Não encontrando em L2, busca na DRAM.

1.4. Memória Virtual


 Simulação de memória RAM feita no Winchester pelo sistema operacional.
1.5. Memória Buffer
 Memória utilizada por alguns periféricos (impressora), para não depender da CPU e da RAM.
1.6. Memória Secundária (auxiliar, de massa, externa)
 Memória para armazenar informações para uso posterior.
a) Winchester (HD – Hard Disk - Disco Rígido)
 Alta durabilidade
 Alta velocidade
 Alta capacidade – até 500 GB, mas com modelos de 1 TB para empresas.

RAID => é um hardware composto por vários discos rígidos, utilizado para agilizar o processo de acesso a dados
de um servidor (onde o arquivo é dividido em partes de tamanho iguais e distribuídos entre os diversos discos –
ditribuição de dados) ou por motivos de segurança (onde o arquivo é salvo em um HD e automaticamente é criado
um backup do mesmo que é salvo em outro HD – espelhamento)
IDE X SATA
Serial ATA ou simplesmente SATA é o padrão de discos rígidos criado para substituir os discos ATA,
também conhecidos como IDE. A taxa de transferência máxima teórica de um disco Serial ATA é de 150 MB/s ou
300 MB/s, contra os 133 MB/s de um disco rígido IDE.
A porta IDE tradicional transfere dados de forma paralela. A vantagem da transmissão paralela é que ela é
mais rápida do que a transmissão em série, pois transmite vários bits por vez. Sua grande desvantagem, porém, é
em relação ao ruído. Como terão de existir muitos fios (pelo menos um para cada bit a ser transmitido por vez), um
fio gera interferência no outro. É por esse motivo que os discos rígidos ATA-66 e superiores precisam de um cabo
especial, de 80 vias. A diferença entre esse cabo de 80 vias e o cabo IDE comum de 40 vias é que ele possui um
fio de terra entre cada fio original, funcionando como uma blindagem contra interferências.
No Serial ATA, por outro lado, a transmissão dos dados é feita de modo serial, ou seja, transmitindo um bit
por vez. Utiliza um clock maior nesta transmissão e com isso, ela é mais rápida do que a transmissão paralela.
Professor Luis Octavio - 9
CPC - Parte I - Conceitos Básicos
Portas IDE tradicionais utilizam um conector de 40 pinos e um cabo de 80 vias. As portas Serial ATA utilizam
um conector de sete pinos e um cabo com sete fios. Isto ajuda e muito no fluxo de ar dentro do micro, já que cabos
mais finos não obstruem a passagem do ar.
b) Disquete (disco flexível)

Trilha

Setor

Tipo Capacidade Trilhas Setores


DD – 51/4” 360 KB 40 9
HD – 51/4” 1.2 MB 80 15
DD – 31/2” 720 MB 80 9
HD – 31/2” 1.44 MB 80 18
ED – 31/2” 2.88 MB 80 36

Sistemas de Arquivos
 FAT (File Alocation Table – Tabela de Alocação de Arquivos)
 Os arquivos são salvos em locais chamados cluster (unidade de alocação de arquivos) e com isso há
um grande desperdício de espaço no disco.
 Só visualiza unidades de discos de até 2 GB. Sendo assim, se utilizarmos um HD com tamanho
superior será necessário particionar o disco em várias unidades.
 Sistemas Operacionais: MS-DOS e Windows 95
 FAT32
 Os arquivos são salvos em cluster (unidade de alocação de arquivos) menores e com isso há um
menor desperdício de espaço no disco.
 Visualiza unidades de discos de até TB.
 Sistemas Operacionais: Windows 98, ME e 2000

 NTFS
 Os arquivos são salvos sequencialmente e não mais em clusters e com isso não há desperdício de
espaço no disco.
 Apresenta sistema de segurança no nível de arquivo.
 Permite dividir o disco em cotas de utilização para os usuários.
 Sistemas Operacionais: Windows 2000, XP e 2003

c) Zip disquete
 3 ½”
 capacidade: 100, 250 e 500 MB

d) Jaz disquete
 3 ½”

Professor Luis Octavio - 10


CPC - Parte I - Conceitos Básicos
 capacidade: 1 GB e 2 GB
e) Super disk
 3 ½”
 capacidade: 120 MB
obs: driver – conjunto de arquivos de instalação
drive – equipamento que faz a leitura de memória secundária

f) CD
 Tipos: CD-ROM – somente para leitura; CD-R – gravável e CD-RW – regravável.
 Capacidade: 600, 741 e 800 Mb
 Taxa de transferência padrão (x): 150 KB/s
g) DVD
Tipos: DVD-ROM – somente para leitura; DVD-R – gravável e DVD-RW OU DVD+RW 0U DVD –
RAM – regraváveis.
 Capacidade: 4.7 GB a 17 GB
 Taxa de transferência padrão (x): 1352 KB/s
 Alta resolução
h) Fitas Magnéticas
São utilizadas para backup (cópia de segurança) em servidores. Normalmente em PC os usuários utilizam ZIP
disquete, JAZ disquete e CD-RW para criação de Backup.
Características do Backup
 Cópia não utilizável, ou seja, deve ser restaurada para ser utilizada;
 Cópia compactada, ocupando assim, menos espaço;
 Existe cópia de atualização feita pelo Windows.
Tipos de Backup do Windows
Tipo Características Marca ou não os arquivos
que receberam backup
Normal Cria backup de todos os arquivos que forem sim
selecionados
Diferencial (atualização) Cria backup apenas dos arquivos que forem não
criados ou alterados após o último backup. É
mais seguro que o incremental, repete o backup
dos arquivos dos backups anteriores. Se a
empresa utilizar um esquema de backup normal
e backups diferenciais terá, para recuperar os
arquivos originais, que ter o backup normal e o
último diferencial
Incremental Cria backup apenas dos arquivos que forem sim
(atualização) criados ou alterados após o último backup. Se a
empresa utilizar um esquema de backup normal
e backups incrementais terá, para recuperar os
arquivos originais, que ter o backup normal e
todos os incrementais.
Diário Cria backup apenas dos arquivos que forem não
criados ou alterados no dia do backup.

 QIC (Quarter Inch Cartidge): devido à sua construção bastante sólida, é um padrão preferido para
arquivamento de dados. Esse padrao possui modelos que recebem na nomenclatura MC – Mini
Cartidge (cartuchos de 3 1/2”) com capacidades variando de 40 MB até 1,8 GB e modelos com
DC – Data Cartidge (cartuchos de 5 1/4”) com capacidades de 525 MB até 25 GB.

 DAT (Digital Audio Tape): descendente direto do videocassete, o sistema DAT (Digital Audio
Tape) foi concebido como um formato de gravação de áudio com qualidade de CD, que foi
posteriormente padronizado pela HP e Sony para dados, sob o nome DDS. Sua capacidade é de 2
GB, as novas especificações foram criadas até chegar ao padrão mais recente, o DDS-4 capaz de

Professor Luis Octavio - 11


CPC - Parte I - Conceitos Básicos
armazenar até 40 GB (modo comprimido) em um cartucho com as mesmas dimensões. Existem
modelos atuais de até 70 GB.

 Travan: é o padrão criado pela 3M, que oferece mídias de alta capacidade mantendo
compatibilidade com alguns padrões QIC, pois possuem gravação linear. Seus drives sao mais
simples e com custos menores. Apresenta modelos 400 MB até 20 GB.

 8 mm: é o padrao semelhante ao da DAT, pois também possui gravação heliocoidal, mas com 8
mm de largura (DAT possui 4 mm) e com capacidades entre 3,5 GB e 35 GB.
 DLT (Digital Linear Tape): formato que usa cartuchos de fita de 12,7 mm montados em apenas um
carretel. Originalmente criada pela DEC (Digital Corporation) e posteiormente adquirida pela
Quantum, Sua gravação é linear e um de seus principais atrativos sao: a capacidade de
armazenamento (40 GB não comprimidos), confiabilidade e velocidade de transmissão de dados
(até 6 MB por segundo no modo nativo). Existem modelos de 20 GB até 110 GB. A Compaq, assim
como outras empresas, comercializa quatro modelos de bibliotecas baseadas em DLT (TL881, TL
891, TL 895 e ESL 9000), esta última com capacidade de 326 slots, 16 leitoras de 35 GB,
totalizando mais de 11,4 TB.
 Carretel (Rolo, Open Real Tape): era muito utilizada em minicomputadores e microcomputadores.
i) Pen drive (USB drive)
 Alta durabilidade: 10 anos.
 Capacidade: até 2 GB
 Taxa de transferência: 450 KB/s
 Não necessita de drive, pois utiliza porta USB (barramento universal serial – permite que 127
dispositivos diferentes utilizem a mesma porta, enquanto o barramento FIREWIRE permite 63
dispositivos, mas com taxas de transferências superiores).

j) Novas Mídias

I - HD DVD (High Density Digital Versatile Disc - Disco Digital Versátil de Alta Densidade ou High
Definition Digital Video Disc - Disco Digital de Vídeo de Alta Definição)

É um formato de mídia óptica digital, desenvolvido como sendo o primeiro padrão de vídeo de alta definição.
HD DVD é similar ao seu competidor, o disco Blu-ray, que também utiliza o mesmo tamanho de disco óptico
(120 mm de diâmetro) de mídia de compartimento óptico de dados e 405 nm leitura de ondas de laser azul.
O HD DVD utiliza um laser azul-violeta de 400 nm para ler informação dos discos enquando os DVD usam
um laser vermelho de 650nm.(O Blu-Ray usam um laser Azul-violeta de 405 nm). A pequena duração de
ondas reduz a refração e mantém o tamanho menor do laser. Isso permite que os arquivos sejam lidos com
alta densidade na superfície do disco.
O HD DVD tem a capacidade simples de 15 GB e capacidade dupla camada de 30 GB. A Toshiba anunciou
que um disco de camada tripla está em fase de pesquisa e desenvolvimento, que poderá oferecer 45 GB de
compartimento, pouco menos que o concorrente Blu-Ray. A superfície de cada camada de um HD DVD é de
0,6 mm, o mesmo do tamanho do DVD porém, 0,1 mm a menos do que a camada de um disco Blu-ray. A
abertura numérica do cabeçote de feixe ótico tem 0,65 mm, comparado aos 0,6 mm do DVD. Ambos
formatos serão compatíveis com o DVD e ambos serão utilizados assim como as técnicas de vídeo
compressão: Mpeg-2. Video Codec 1 (vc1, baseado no formato do Windows Media 9) e H.264/ Mpeg-4 AVC.

Professor Luis Octavio - 12


CPC - Parte I - Conceitos Básicos

Capacidade de Capacidade de dupla Capacidade de tripla


Tamanho físico
camada única camada camada
12 cm, de um lado 15 GB 30 GB 45 GB, 51 GB
12 cm, de dois lados 30 GB 60 GB 90 GB
8 cm, de um lado 4.7 GB 9.4 GB
8 cm, de dois lados 9.4 GB 18.8 GB

II – BD - Blu-ray

É um formato de disco óptico da nova geração de 12 cm de diâmetro (igual ao CD e ao DVD) para vídeo de
alta definição e armazenamento de dados de alta densidadApe. Compete para se converter no padrão de
discos ópticos sucessor do DVD. Seu rival é o HD-DVD. O disco Blu-Ray faz uso de um laser de cor violeta
de 405 nanometros permitindo gravar mais informação num disco do mesmo tamanho (o DVD usa um laser
de cor vermelha de 650 nanometros). Blu-ray obteve o seu nome a partir da cor azul do raio laser ("blue ray"
em inglês significa "raio azul"). A letra "e" da palavra original "blue" foi eliminada porque, em alguns países,
não se pode registar, para um nome comercial, uma palavra comum. Este raio azul mostra uma longitude de
onda curta de 405 nm e, conjuntamente com outras técnicas, permite armazenar substancialmente mais
dados que um DVD ou um CD. Blu-ray e HD-DVD dividem as mesmas dimensões e o aspecto externo.
O tamanho do "ponto" mínimo no qual um laser pode gravar está limitado pela difracção, e depende do
comprimento de onda de luz do laser e da largura da lente utilizada para gravar. No caso do laser azul-
violeta utilizado nos discos Blu-ray, o comprimento de onda é menor que nas tecnologias anteriores,
aumentando portanto o aproveitamento do espaço físico no Blu-ray (0.85, comparado com 0.6 para DVD).
Com ele, e graças a um sistema de lentes duplas e a uma camada protetora mais larga, o raio laser pode
direcionar-se de forma muito mais precisa na superfície do disco. Os pontos de informação legíveis no disco
são muito menores e, portanto, o mesmo espaço pode conter muito mais informação. Por último, mesmo
com as melhorias na tecnologia, os discos Blu-ray incorporam um sistema melhorado de codificação de
dados que permite guardar ainda mais informação.
O Blu-ray possui uma resistência aos arranhões e impressões digitais devido à sua morfologia. Os discos
têm uma capa de substrato, cujo nome comercial é Durabis, que é composta por uma camada de substrato
de 1,1 mm para um lado e 1 mm para o outro para permitir a criação de mais ficheiros de dados e o uso de
um só lado.
Tipos:
 BD-ROM: Um disco que é só de leitura.
 BD-R: Disco gravável.
 BD-RW: Disco regravável.
Dimensões Capacidade de uma camada Capacidade com camada dupla
12 cm, lado único 25GB (23.3GiB) 50GB (46.6GiB)
12 cm, dois lados 50GB (46.6GiB) 100GB (93.2GiB)
8 cm, lado único 7.8GB (7.3GiB) 15.6GB (14.5GiB)
8 cm, dois lados 15.06GB (14.5GiB) 30.12GB (29GiB)

Taxa de transferência de dados Tempo de gravação para disco blu-ray (minutos)


Velocidade do drive
Mbit/s MB/s Uma Camada Duas Camadas
1× 36 4.5 90 180
2× 72 9 45 90
4× 144 18 23 45

Professor Luis Octavio - 13


CPC - Parte I - Conceitos Básicos
6× 216 27 15 30
8× 288 36 12 23
12× 432 54 8 15

2. Processadores
2.1 Conceitos Importantes
a) Partes:
 ULA – Unidade de Lógica e Aritmética: responsável por executar as instruções que corresponde as
operações de processamento.
 UC – Unidade de Controle: responsável por controlar tudo que entra e sai da CPU e as interrupções
(solicitações feitas a CPU para interromper a execução da instrução atual, para executar uma nova
instrução de maior prioridade).
 Registradores: armazenam os dados que estão sendo processados (RDM), o endereço dos dados
(REM), as instruções que estão sendo executadas (RI) e o endereço da próxima instrução que será
executada (RI).
 Clock: responsável por gerar os pulsos elétricos necessários para o processamento e para buscar dados
em memória.
b) Instrução de máquina: conjunto de bits que representa uma operação realizada pelo computador.
c) Von Neumann e Pipeline
 Von Neumann – era uma estrutura utilizada até o computador Pentium MMX, que permite que a
instrução seja divida em estágios que são executados seqüencialmente.
 Pipeline –estrutura utilizada a partir do computador Pentium Pro até o Pentiu III, que permite que a
instrução seja divida em estágios que são executados de forma paralela
 Superpipeline – estrutura utilizada no computador Pentium IV, onde a instrução é dividida em estágios
que são divididos em subestágios.
 HT – estrutura utilizada no computador Pentium HT, onde acontece a simulação de dois núcleos para
que sejam executadas quase duas instruções ao mesmo tempo.
 Duo Core - estrutura que utiliza dois núcleos
 Extreme – núcleo duplo com tecnologia HT
 Core Quad – quatro núcleos

Obs: Centrino - não é um processador para notebooks, mas sim uma plataforma composta por um conjunto de
componentes específicos ditados pela Intel: um determinado processador, um determinado chipset e uma
determinada rede sem fio.

d) RISC X CISC
RISC CISC
Computador com um conjunto reduzido de instruções Computador com um conjunto complexo de instruções
Utiliza pipeline Utiliza Von Neumann
As instruções são executadas diretamente pela CPU, pois As instruções não são executadas diretamente pela CPU,
são criadas em linguagem de máquina pois são criadas em linguagem de alto nível e por isso tem
que ser traduzidas para serem utilizadas
Utiliza muitos registradores e pouca memória RAM Utiliza poucos registradores e muita RAM
Os programas são criados diferentemente para Os programas são gerais, sendo assim, podem ser
computadores de fabricantes diferentes. utilizados por equipamentos de fabricantes diferentes.
Alto desempelho Baixo desempenho em relação as máquinas RISC
Obs: até o processador Pentium MMX utilizava-se a tecnologia CISC. A partir do Pentium Pro os processadores utilizam
tecnologia híbrida RISC/CISC, formada por núcleo RISC e um decodificador CISC.

e) Velocidade
 É a quantidade de instruções que são executadas em um determinado tempo.
 Medida: MIPS (milhares de instruções por segundo)
 Depende unicamente do tipo de processador.
f) Frequência
 É a quantidade de pulsos elétricos que são emitidos em um segundo.
 Medida: MHz e GHz
 Clock – equipamento que gera os pulsos elétricos para buscar dados em memória RAM (clock
externo – depende da memória) e para realizar um processamento (clock interno – dependa da
CPU)

Professor Luis Octavio - 14


CPC - Parte I - Conceitos Básicos
g) Barramento
São os fios por onde passam os dados e instruções (DATA BUS), os endereços (ADDRESS BUS) e que
controla o data bus e o address bus (CONTROL BUS).

Professor Luis Octavio - 15


CPC - Parte I - Conceitos Básicos

Barramento Característica
ISA 8 bits e 16 bits
EISA 16 e 32 bits
PCI 32 e 64 bits
AGP 64 bits
USB Permite interligar 127 dispositivos diferentes
FIREWIRE 63 dispositivos, mais rápido que o USB
IRDA Infravermelho
BLUETOOTH Ondas de Rádio

Número
Velocidade
Tipo de porta máximo de
(Mbps)
dispositivos
Serial 0,25 1
Paralela EPP/ECP 3 4
SCSI-1 5 8
SCSI-2 Fast 10 8
USB 12 127
SCSI-2 Wide 20 16
SCSI-3 Ultra (Narrow) 20 8
IDE (Ultra DMA/33) 33 2
SCSI-3 Ultra Wide 40 16
Ultra2 SCSI 40 8
IEEE 1394 (FireWire) 40 63
Ultra2 Wide SCSI 80 16
Ultra3 SCSI 80 8
Ultra3 Wide SCSI 160 16
FC-AL (Fibre
400 126
Channel)

h) CHIPSET

É o nome dado ao conjunto de chips (set significa “conjunto”, daí o seu nome) usado na placa-mãe,
utilizado pelos fabricantes para substituir os vários circuitos que eram utilizados para controlar periféricos,
memória e barramentos. O CHIPSET é constituído por dois grandes chips chamados ponte norte e ponte
sul.

Ponte Norte
O chip ponte norte, também chamado de MCH (Memory Controller Hub, Hub Controlador de Memória) é
conectado diretamente ao processador e possui basicamente as seguintes funções:
 Controlador de Memória (*)
 Controlador do barramento AGP (se disponível)
 Controlador do barramento PCI Express x16 (se disponível)
 Interface para transferência de dados com a ponte sul
Ponte Sul
O chip ponte sul, também chamado ICH (I/O Controller Hub, Hub Controlador de Entrada e Saída) é
conectado à ponte norte e sua função é basicamente controlar os dispositivos on-board e de entrada e saída tais
como:
 Discos Rígidos (Paralelo e Serial ATA)
 Portas USB
 Som on-board (*)
 Rede on-board (**)
 Barramento PCI
 Barramento PCI Express (se disponível)
 Barramento ISA (se disponível)

Professor Luis Octavio - 16


CPC - Parte I - Conceitos Básicos
 Relógio de Tempo Real (RTC)
 Memória de configuração (CMOS)
 Dispositivos antigos, como controladores de interrupção e de DMA

CPU CARACTERÍSTICAS
8086 e 8088 8 bits
286 16 bits, memória virtual
Memória cachê externa (L2)
386 386 DX – barramento interno e externo: 32 bits
386 SX – barramento interno: 32 bits e externo: 16 bits
32 bits, cachê interno (L1) de 8 KB
486 486 DX – com co-processador aritmético interno
486 SX – sem co-processador aritmético interno, mas poderia ser colocado (487)
32 bits
486 DX-2 fator de multiplicação = 2, clock externo (CE) = clock interno (CI)/2 Ex: DX-2 66 -> CI =
66 MHz e CE = CI/2  CE = 66/2 = 33 MHz
32 bits
cachê interno de 16 KB
486 DX - 4
fator de multiplicação = 3, clock externo (CE) = clock interno (CI)/3 Ex: DX-4 100 -> CI =
100 MHz e CE = CI/3  CE = 100/3 = 33 MHz
64 bits
PENTIUM clock externo = 66 MHz
fator de multiplicação variável, Ex: Pentium 100 -> CI = 100 MHz e CE = 66 MHz
MMX (MultiMedia Extension ou Math Matrix Extensions - Extensão Multimídia ou
Extensões de Matriz Matemática) - conjunto de 57 instruções cujo objetivo é manipular
vários dados pequenos de uma só vez. Por exemplo, usando um registrador de 32 bits
para carregar e executar, de uma só vez, quatro dados de oito bits. Neste exemplo, esta
PENTIUM MMX
tarefa seria quatro vezes mais rápida do que manipular os quatro dados de oito bits
individualmente.
.cachê interno de 32 KB
clock externo = 66 MHz
Primeiro computador de 6º geração => RISC e CISC (todos os outros anteriores eram
PENTIUM PRO
CISC)
L1 e L2 na CPU, L1 acessada na freqüência do clock interno e L2 acessada na metade
do clock interno
PENTIUM II
Antes do Pentium II 350 => CE = 66 MHz
Pentium II 350 e posteriores => CE = 100 MHZ
PENTIUM CELERON Não possui L2, o Pentium Celeron – A possui L2 pequeno de 128 KB
Para empresas, para ser utilizado como Servidor de Rede
L1 e L2 sendo acessadas na mesma freqüência do clock interno
32 KB de cache L1
PENTIUM II XEON 512 KB, 1 MB e 2 MB de cache de memória L2.
Clock interno de 400 e 450 MHz externo de 100 MHz.
núcleo “Deschutes” - com tecnologia de fabricação de 0,25 µm e com 7,5 milhões
de transistores, ocupando uma área de 203 mm2.
Tecnologia MMX-2 ou SSE com 70 instruções, trabalhando com números de ponto
flutuante de até 32 bits, enquanto a tecnologia MMX só trabalha com números inteiros.
Até o Pentium III 550 => clock externo = 100 MHz
Pentium III posteriores => clock externo = 133 MHz
Melhor desempenho na Internet
Primeiro computador que ultrapassou o clock interno de 1GHz
14 estágios de pipeline
Para empresas, para ser utilizado como Servidor de Rede
L1 e L2 sendo acessadas na mesma freqüência do clock interno
32 KB de cache L1 dividido
512 KB, 1 MB e 2 MB de cache de memória L2.
PENTIUM III XEON Clock interno de 500, 550, 600, 667, 700, 733, 800, 866, 900 MHz e 1GHz e clock
externo de 100 MHz até o modelo Pentiu III 550 e 133 para os posteriores..
núcleo “Deschutes” - com tecnologia de fabricação de 0,25 µm e com 7,5 milhões
de transistores, ocupando uma área de 203 mm2.
Tecnologia SSE2 – 144 instruções cujo objetivo é manipular vários dados pequenos de
uma só vez, trabalhando com números de ponto flutuante de até 64 bits.
Tecnologia SSE3 nos processadores com núcleo Prescott - Trata-se de um conjunto de
Pentium IV 13 instruções cujo objetivo é aumentar o desempenho do micro. Entre estas instruções
estão instruções de conversão de números de ponto flutuante para inteiros,
sincronização de threads e uma especificamente para a codificação de vídeo.
20 estágios de pipeline

Professor Luis Octavio - 17


CPC - Parte I - Conceitos Básicos

 núcleo Willamette - 256 KB de cache L2, clock externo de 400 MHz, clock
interno de 1,4 GHz até 2 GHz, suporte a tecnologia de instruções SSE2,
tecnologia de construção de 0,18 µm e tinha 42 milhões de transistores
ocupando uma área de 217 mm2. O metal utilizado para fazer a conexão dos
transistores e de outros componentes dentro do núcleo era o alumínio.
 núcleo Northwood – tecnologia de construção de 0,13 µm. O núcleo
Northwood pode ser encontrado em versões de 512 KB ou 2 MB de cache L2,
barramento externo rodando a 400 MHz, 533 MHz ou 800 MHz, clock interno
de 1,6 GHz até 3 GHz suporte a instruções SSE2 e uso de 55 milhões de
transistores, ocupando uma área de 131 mm2. O metal utilizado para fazer a
interconexão dos transistores e de outros componentes dentro do núcleo é o
cobre.

 núcleo Prescott é tecnologia de construção de 90 nanômetros (0,09 µm) , 512


KB, 1 MB ou 2 MB de cache L2, trabalha externamente a 533 MHz ou 800
MHz, clock interno de 2,2 GHz até 3,8 GHz, suporte às novas instruções SSE3
e uso de 125 milhões de transistores, ocupando uma área de 112 mm2. O
metal utilizado para fazer a interconexão dos transistores e de outros
componentes dentro do núcleo é o cobre.
Não pode ser instalado em placas DUAL
PENTIUM IV XP – placas DUAL (servidores de rede)
Clock interno = modelos com 3 GHz
Duplo núcleo
Tecnologia SSE3
Não utiliza tecnologia HT
 núcleo Smithfield consiste na verdade em duas pastilhas de silício do núcleo
Prescott montadas em um único processador. Ele possui 230 milhões de
transistores ocupando uma área de 206 mm2 e tecnologia de construção de 90
nm, tecnologia Enhanced SpeedStep que permite que o processador reduza o
Pentium D
seu clock interno em momentos de ociosidade de modo a economizar bateria,
16 KB de cache L1 de dados, 2 MB de cache L2 (1 MB por núcleo), clock
interno de 2,66 até 3 GHz e clock externo de 533 e 800 MHz.
 núcleo Presler possui 376 milhões de transistores ocupando uma área de 162
mm2 e tecnologia de construção de 65 nm, 16 KB de cache L1 de dados, 4 MB
de cache L2 (2 MB por núcleo), clock interno de 2,8 até 3,6 GHz, clock externo
de 800 MHz.
Duplo núcleo
Tecnologia SSE3
utiliza tecnologia HT
 núcleo Smithfield consiste na verdade em duas pastilhas de silício do núcleo
Prescott montadas em um único processador. Ele possui 230 milhões de
transistores ocupando uma área de 206 mm2 e tecnologia de construção de 90
nm, tecnologia Enhanced SpeedStep que permite que o processador reduza o
Pentium Extreme Edition
seu clock interno em momentos de ociosidade de modo a economizar bateria,
16 KB de cache L1 de dados, 2 MB de cache L2 (1 MB por núcleo), clock
interno de 3,2 GHz e clock externo de 800 MHz.
 núcleo Presler possui 376 milhões de transistores ocupando uma área de 162
mm2 e tecnologia de construção de 65 nm, 16 KB de cache L1 de dados, 4 MB
de cache L2 (2 MB por núcleo), clock interno de 3,46 e 3,73 GHz, clock
externo de 1066 MHz.
Cache L1 de execução de 150 KB.
Cache L1 de dados de 8 KB ou de 16 KB nos modelos com suporte à
tecnologia EM64T (tecnologia de 64 bits).
cache L2 pode ser de 512 KB, 1 MB ou 2 MB, sendo que alguns modelos possuem um
cache L3, que pode ser de 1 MB, 2 MB, 4 MB ou 8 MB
Pentium Xeon (Pentiu IV XP) Multiprocessamento simétrico diretamente com até dois processadores.
Clok interno de 1,40, 1,50, 1,70 GHz e clock externo 400 MHz – não possuem a
tecnologia HyperTheading
Clock interno de 1,80, 2,0, 2,20, 2,40, 2,60, 2,66, 2,80, 3,0, 3,06, 3,16, 3,20, 3,33, 3,40,
3,60, 3,66 e 3,80 GHz e clock externo 400, 533, 667, 800 MHz – possuem tecnologia
HyperTheading
Cache L1 de execução de 150 KB.
Cache L1 de dados de 8 KB ou de 16 KB nos modelos com suporte à
tecnologia EM64T (tecnologia de 64 bits).
Pentium Xeon MP(Pentium cache L2 pode ser de 512 KB, 1 MB ou 2 MB
IV XP) Multiprocessamento simétrico diretamente com até quatro processadores.
Tecnologia HyperThreading.
Clock interno de 1,40, 1,50, 1,60, 1,90, 2,0, 2,20, 2,50, 2,70, 2,80, 2,83, 3,0, 3,16, 3,33 e
3,66 GHz

Professor Luis Octavio - 18


CPC - Parte I - Conceitos Básicos
Clock externo de 400 e 667 MHz
Instruções SSE3.
Cache L1 de dados de 16 KB e cache de execução de 150 KB.
Suporte a multiprocessamento simétrico com até dois processadores
Tecnologia Execute Disable.- permite que o próprio processador da máquina detecte
quando um código malicioso (como um vírus ou um cavalo de tróia) está tentando
Pentium Xeon de Núcleo
rodar e automaticamente desabilita tal código, "afogando" o vírus.
Duplo
Tecnologia de virtualização - permite que um processador funcione como se fosse
vários processadores trabalhando em paralelo de modo a permitir que vários sistemas
operacionais sejam executados ao mesmo tempo em uma mesma máquina.
Clock interno de 2,66, 2,80, 2,83, 3,0, 3,20, 3,73 GHz
Clock externo de 667, 800 e 1066 MHz
Estrutura de dois núcleos de processamento construído com tecnologia de 65 nm.
Tecnologia para notebook. Os processadores Pentium M podem ser encontrados em
duas versões de núcleos: Banias (fabricado usando processo de 130 nm) e Dothan
(fabricado usando processo de 90 nm).
Banias
Os primeiros modelos de Pentium M eram baseados no núcleo Banias, que tinha 32 KB
de cache L1 de instruções e 32 KB de cache L1 de dados, 1 MB de cache L2,
trabalhava externamente a 400 MHz (100 MHz transferindo quatro dados por pulso de
clock), suporte as instruções SSE2, tecnologia Enhanced SpeedStep apenas nos
modelos SL6NA e SL6P4 (que permite que o processador reduza o seu clock interno
em momentos de ociosidade de modo a economizar bateria), tecnologia de construção
de 0,13µm, padrão de pinagem soquete 478 e 479, e tinha 77 milhões de transistores
ocupando uma área de 82,79 mm2. O metal utilizado para fazer a conexão dos
Pentium M ou Core duo
transistores e de outros componentes dentro do núcleo era o cobre.
Dothan
O núcleo Dothan é construído com tecnologia de 90 nanômetros (0,09µm) e é utilizado
nos processadores Pentium M modernos. Ele possui 32 KB de cache L1 de instruções e
32 KB de cache L1 de dados, 2 MB de cache L2, trabalha externamente a 400 MHz ou
533 MHz (100 MHz e 133 MHz transferindo quatro dados por pulso de clock,
respectivamente), suporte as instruções SSE2, tecnologia Enhanced SpeedStep (que
permite que o processador reduza o seu clock interno em momentos de ociosidade de
modo a economizar bateria), tecnologia Execute Disable, padrão de pinagem soquete
478 e 479, e uso de 140 milhões de transistores ocupando uma área de 87,66 mm2. O
metal utilizado para fazer a conexão dos transistores e de outros componentes dentro
do núcleo é o cobre.

Os processadores Core 2 Duo, Core 2 Quad e Core 2 Extreme são baseados na nova
microarquitetura Core, lançada para substituir a microarquitetura Netburst que era
usada no Pentium 4 e processadores derivados deste. Neste tutorial listaremos todos
os modelos já lançados destes processadores bem como as suas principais
características técnicas.
A família dos processadores Core 2 é formada por três membros: Core 2 Duo, um
processador de dois núcleos que substitui o Pentium 4 e o Pentium D; Core 2 Quad,
que é formado por dois processadores Core 2 Duo em um mesmo invólucro sendo,
portanto, um processador de quatro núcleos; e o Core 2 Extreme, que substitui o
Pentium Extreme Edition, com modelos de dois e quatro núcleos. O Core 2 Extreme
trabalha com clocks mais elevados e tem o multiplicador de clock destravado, o que
permite fazer overclock alterando o multiplicador de clock do processador.
 64 KB de cache L1 (32 KB de dados + 32 KB de instruções) por núcleo
 Tecnologia de dois ou quatro núcleos.
 Tecnologia fabricação de 65 nm ou 45 nm.
Core 2  Soquete 775.
 Barramento externo de 800 MHz (200 MHz transferindo quatro dados por pulso
de clock), 1.066 MHz (266 MHz transferindo quatro dados por pulso de clock),
1.333 MHz (333 MHz transferindo quatro dados por pulso de clock) ou 1.600
MHz (400 MHz transferindo quatro dados por pulso de clock).
 2 MB, 3 MB, 4 MB ou 6 MB de cache de memória L2 compartilhado. Nos
processadores de quatro núcleos, cada par de núcleos tem seu próprio cache,
compartilhado entre os dois núcleos mas independente dos outros dois.
 Tecnologia de Virtualização (exceto no Core 2 Duo modelos E4x00, E7x00 e
E81xx).
 Tecnologia Intel EM64T.
 Instruções SSE3.
 Instruções SSE4.1 nos modelos de 45 nm.
 Execute Disable.
 Intelligent Power Capability.
 Tecnologia Enhanced SpeedStep.
Professor Luis Octavio - 19
CPC - Parte I - Conceitos Básicos
É um processador de baixo consumo da Intel que dissipa pouco calor (menos de 3 W),
voltado para os mercados de notebooks e de dispositivos móveis com acesso à internet
– chamados MIDs pela Intel, ou Mobile Internet Devices.
 Compatibilidade total com o conjunto de instruções x86, o que significa que ele
pode rodar diretamente programas e sistemas operacionais para PCs. Vários
outros processadores voltados para o mercado de dispositivos móveis têm
conjunto de instruções proprietário.
 Baixíssima dissipação térmica (TDP): 4 W para o modelo 230, 2,5 W para o
modelo N270 e entre 2 W e 2,64 W para os modelos Z5xx.
 Tecnologia HyperThreading.
 Tecnologia de Virtualização.
 Execute Disable.
 Conjunto de instruções SSE3
 Clock externo de 400 MHz ou 533 MHz (100 MHz ou 133 MHz transferindo
quatro dados por pulso de clock).
Atom
 Caminho de dados interno de 128 bits (“Digital Media Boost”).
 32 KB de cache L1 de instruções e 24 KB de cache L1 de dados.
 512 KB de cache L2.
 Tamanho de cache dinâmico: capacidade de desligar porções do cache de
memória quando o processador entra nos modos de economia de energia C4
ou C4E (não disponível nos modelos Atom 2xx).
 Pipeline de 16 estágios.
 Fabricado com tecnologia de 45 nm.
 Pode trabalha em conjunto com um chipset móvel da classe Intel 945 (Atom
modelos 2xx e Nxxx) ou com um chipset Intel US15W (“Poulsbo”), Atom
modelos Z5xx. Os modelos 2xx e Nxxx são voltados para o mercado de
notebooks, enquanto que os modelos Z5xx são voltados para o mercado de
dispositivos móveis com acesso à internet.
 237 pinos (modelos “Diamondville”, ou seja, 2xx e Nxxx) ou 441 pinos
(modelos “Silverthorne”, ou seja, Z5xx).
É o codinome do novo processador da Intel com controlador de memória integrado que
chegará ao mercado em breve e será chamado Core i7; esta arquitetura também será
usada nos processadores para servidores (Xeon) e, daqui a alguns anos, também será
usada nos processadores para PCs “populares”. Os processadores baseados nesta
arquitetura terão um controlador de memória DDR3 integrado de três canais, três níveis
de cache, a volta da tecnologia HyperThreading, um novo barramento externo chamado
QuickPath
 Baseado na microarquitetura Intel Core.
 De dois a oito núcleos.
 Controlador de memória DDR3 integrado com três canais de memória.
 Caches de memória L2 individuais de 256 KB para cada núcleo.
 Cache de memória L3 de 8 MB.
 Novo conjunto de instruções SSE 4.2 (sete novas intruções).
 Tecnologia HyperThreading.
 Modo Turbo (overclock automático).
Nehalem  Aprimoramentos na microarquitetura (suporte a fusão de instruções no modo
de 64 bits, detector de laços aprimorado, seis portas de despacho, etc).
 Aprimoramentos na unidade de previsão de desvios, com a adição de um
segundo Buffer de Desvios (BTB, Branch Target Buffer).
 Um segundo Buffer de Tradução de Endereços (TLB, Translation Look-aside
Buffer) com 512 entradas.
 Otimizado para as instruções SSE desalinhadas.
 Aumento do desempenho da tecnologia de virtualização (melhora de 60% na
latência de virtualização em relação aos processadores Core 2 de 65 nm e
melhora de 20% em relação aos processadores Core 2 de 45 nm, segundo a
Intel).
 Novo barramento externo QuickPath.
 Nova unidade de controle de energia.
 Tecnologia de fabricação de 45 nm no lançamento, com futuros modelos de 32
nm (processadores com codinome “Westmere”).
 Novo soquete com 1.366 pinos.

L1 = 128 KB e L2 = 512 KB, acessada na metade do clock interno


AMD ATHLON Clock externo = 200 MHz
Tecnologia 3D NOW! Ampliada (MMX)
AMD DURON Versão barata AMD ATHON
Professor Luis Octavio - 20
CPC - Parte I - Conceitos Básicos
Melhor desempenho que o Pentium Celeron, isso porque, sua L1 é de 64 KB (Celeron é
de 32 KB)
Clock externo = 200 MHz
L2 de 128 KB, acessada na freqüência do clock interno
L1= 128 KB e L2 = 256 KB, acessada na freqüência do clock interno
AMD ATHLON T-BIRD
Clock externo = 200 e 266 MHz
L2 = 256 KB e L1 = 128 KB
AMD ATHLON XP Tecnologia Professional 3D Now! (MMX-2)
Consumo reduzido de energia
AMD ATHLON 4 É o ATHLON XP para notebook com recurso de economia de energia
L2 MELHORADA = 256 KB e L1 = 128 Kb
Clock externo = 66 MHz
AMD ATHLON MP
Tecnologia Professional 3D NOW! Melhorada (com instruções da SSE-2)
Direcionados para o mercado de servidores de rede (placa DUAL)
a presença do controlador de memória dentro do próprio processador e não no chipset,
como acontece com outros processadores.
64 KB de cache de memória L1 de instruções e 64 KB de cache L1 de dados.
512 KB ou 1 MB de cache de memória L2.
Barramento HyperTransport trabalhando a 800 MHz (3,2 GB/s) ou a 1 GHz (4 GB/s).
Esses clocks podem também ser referenciados como “1.600 MHz” ou “2.000 MHz”,
respectivamente.
Configuração de memória DDR dual channel nos modelos soquete 939 (você precisa
instalar dois módulos de módulos de memória para usar este recurso).
Conjunto de instruções SSE3 em alguns modelos (núcleos “Venice” e “San Diego”).
AMD Athlon 64
Clock internos correspondentes a 1,80, 2,0, 2,20, 2,40
Modelos
Sempron - low-end (usuários iniciantes ou aqueles que não necessitam de tanto poder
computacional)
o Athlon 64 - mid-range (usuários entusiastas ou aqueles que necessitam de um poder
computacional maior do que o proporcionado pelo Sempron)
Athlon 64 FX e o Athlon 64 X2 - high-end (alto desempenho
Athlon 64 Mobile e Turion 64 -mercado de notebooks
Opteron - que é voltado para o mercado de servidores (multiprocessamento até 8
processadores)
É a mais nova série de processadores da AMD baseada na nova microarquitetura K10
(tecnologia controlador de memória dentro do próprio processador e não no chipset,
como acontece com outros processadores.Por causa desta arquitetura a comunicação
entre o processador e os módulos de memória é feita através de um barramento
dedicado, enquanto que a comunicação entre o processador e o chipset é feita através
de um barramento independente, chamado HyperTransport)
As principais diferenças entre o Phenom e o Atlhon 64 são as seguintes:
 Uso de um cache de memória L3.
 Uso de um barramento HyperTransport 3.0 entre o processador e o chipset,
aumentando a largura de banda disponível entre o processador e o mundo
externo. É importante notar que até o momento os processadores Phenom não
trabalham com o desempenho máximo oferecido pelo barramento
HyperTransport 3.0.
 Uso de linhas separadas de alimentação para o processador e para o
controlador de memória, que está embutido dentro do próprio processador
(esta tecnologia também é conhecida como “split-plane” – “alimentação
dividida” – ou DDPM, Dual Dynamic Power Management, ou Gerenciamento
Phenom Elétrico Dinâmico Duplo ).
 Uso de um gerador de clock para o controlador de memória com um valor fixo.
Isto resolve o problema que acontece com o Athlon 64 onde dependo do
modelo do processador as memórias não funcionam em seu desempenho
máximo.
 Suporte para memórias DDR2 até DDR2-1066/PC2-8500 (processadores
Athlon 64 suportam até DDR2-800/PC2-6400).
 Uso do novo soquete AM2+.
Até agora a AMD lançou modelos do Phenom de três e quatro núcleos com as
seguintes especificações técnicas para todos os modelos:
 Cache de memória L1 de 128 KB por núcleo.
 Cache de memória L2 de 512 KB por núcleo.
 Cache de memória L3 de 2 MB compartilhado por todos os núcleos;
 Barramento HyperTransport 3.0 trabalhando a 1,6 GHz (6.400 mb/s), 1,8 GHz
(7.200 MB/s), 2 GHz (8.000 MB/s), dependendo do modelo. Note que o
HyperTransport 3.0 oferece taxas maiores (2,4 GHz/9.600 MB/s e 2,6
GHz/10.400 MB/s) que ainda não estão sendo utilizadas;
 Soquete AM2+;
Professor Luis Octavio - 21
CPC - Parte I - Conceitos Básicos
 Processo de fabricação de 65 nm.
 Conjunto de instruções "SSE4a", que é simplesmente a adição de duas novas
instruções SSE e não tem nada a ver com o SSE4.1 existente nos mais
recentes processadores da Intel e que traz 47 novas instruções.
 Modelos "Black Edition" possuem o multiplicador de clock destravado,
significando uma maior capacidade para overclock, já que eles podem ser
configurados como se fossem um processador de clock mais elevado.
Processador de núcleo duplo que utiliza tecnologia diferente da Intel. Como nos
processadores Athlon 64 e Opteron a ponte norte do chipset está embutida dentro do
próprio processador, ele pode controlar sozinho o multiprocessamento (esta tarefa é
feita pela ponte norte), permitindo que os dois núcleos do processador troquem
Athlon 64 X2
informações entre si diretamente, sem a necessidade de ir do lado de fora do
processador. Na tecnologia da Intel, se um núcleo precisa enviar dados para o outro
núcleo, ele tem de pedir permissão à ponte norte, que está localizada do lado de fora do
processador e é acessada a uma velocidade menor.

3. Periféricos de Entrada (Dispositivos)


3.1. Teclado (Keyboard)
É um conjunto de chaves que se assemelha a um teclado de máquina de escrever e que transmitem dados de
um usuário para o computador. Quando uma tecla é pressionada, o teclado envia um código eletrônico ao
computador, que interpreta o sinal e mostra o caractere correspondente na tela.
Os teclados normalmente são dividos em três partes:
a) Alphanuméric Keypad (Teclado Alfanumérico) -> composto pelas letras, números e mais as teclas:
ESC, CTRL, ALT, CAPS LOCK, SHIFT, TAB, BACKSPACE E BARRA DE ESPAÇO;
b) Numeric Keypad (Teclado Numérico) -> composto pelos números e pelas teclas de movimentação;
c) Function Keypad (Teclado de Funções) -> formado pelas teclas F1 à F12.
3.2. Mouse
É um periférico de entrada para ambientes gráficos, equipado com um ou mais botões de controle, alojado em
um invólucro de plástico que cabe na palma da mão. Quando se move o mouse, seus movimentos são
transmitidos para um cursor em forma de seta na tela (ponteiro indicador do mouse).
Funções do mouse (Padrão):
a) 1 Clique botão esquerdo (padrão) => seleciona;
b) Duplo clique consecutivo botão esquerdo (padrão) => executa;
c) 1 Clique botão direito (padrão) => atalho.

Tipos específicos de mouse

a) Trackball: é um tipo específico de mouse movimentação do ponteiro indicador do mouse se dá pela


esfera que se encontra em sua parte superior;

b) Mouse Touch Pad: é o tipo de mouse sensível ao toque;

c) Mouse para deficientes físicos: é o tipo de mouse criado para permitir o acesso dos deficientes físicos.
Existem vários modelos, entre eles o mostrado abaixo (Head Mouse ou Mouse Ocular), que é utilizado por
tetraplégicos;

Professor Luis Octavio - 22


CPC - Parte I - Conceitos Básicos

3.3. Joystick (Alavanca, Bastão ou Botão de Controle)


Os joysticks possuem uma base plástica quadrada ou retangular à qual fica presa uma haste (alavanca), que
pode ser movimentada gerando dados analógicos correspondentes às coordenadas X-Y os quais são convertidos
em pontos e linhas no vídeo, fazendo com que o cursor se movimente também. É muito utilizado com jogos e
algumas aplicações profissionais, como o projeto auxiliado por computador (CAD), na simulação de vôo e no
controle de robôs. Além disso, esse dispositivo possui botões que servem como os botões do mouse.
3.4. Scanner
É um digitalizador de imagens gráficas ou textuais, que interpreta os caracteres ou marcações feitas em um
documento qualquer através de um sensor luminoso. O processo de leitura é ótico, através de uma fotoelétrica ou
através de leitura por raio laser.
a) Em relação à forma de trabalho pode ser dividido em:
 Scanner de mão (Hand Scanner) => o processo de captura é feito, passando o mouse pela imagem a ser
capturada.

 Scanner de Mesa (Flatbed Scanner) => o processo consiste em colocar a imagem no scanner e através do
software capturar a imagem.

 Scanner de Página (Page Scan) => o processo consiste em colocar a imagem na bandeja vertical do scanner
e o mesmo puxa a imagem, transportando-o para a memória do computador.

 Scanner a Tambor (Drum Scan) => é o scanner que possui a mais alta resolução.

 Scanner 3D => é o scanner que captura uma imagem em 3 dimensões.

Professor Luis Octavio - 23


CPC - Parte I - Conceitos Básicos
A resolução (nitidez da imagem) é medida em DPI (Dots Per Inchs), que corresponde a quantidade de pontos
por polegada. Quanto maior for a quantidade de pontos, maior será a resolução.

- +
Resolução
O scanner é um dispositivo que funciona em conjunto com alguns programas:
 Software para captura de imagens =>esse programa envia a imagem para a tela;
 Software de tratamento de imagens => esse programa permite a manipulação das imagens. São
exemplos: Photopaint, Photoshop, Photoedit, Photostyler;
 OCR (Optical Character Recognition ou Reconhecedor Ótico de Caracteres) => esse programa
resgata o texto da imagem. Ele converte os caracteres para o código ASCII equivalente, permitindo que o
texto seja manipulado por outro programa chamado de Processador de texto;
 Processador de Texto => permite a manipulação do texto. São exemplos: Word, Wordperfec, Wordpad.
3.5. Bar Code Reader (Leitora de Código de Barras)
Código de Barra (Bar Code) é um padrão de barras verticais largas e estreitas usado para representar
códigos numéricos de forma que possam ser lidos por uma máquina. Sua função principal é identifcar produtos.
O código de barra obedece ao Universal Product Code (UPS), que é um formato de código de barras que
inclui o código de identificação do fabricante e código do produto. Quando se passa o código pela leitora, o
computador compara o código do produto com o banco de dados e mostra outras características do produto.

3.6. Leitora de Caracteres Magnetizáveis


Trata-se das leitoras de cartões magnéticos muito conhecidos nos bancos. O código é magnético no cartão,
de forma que a leitora possa lê-lo posteriormente.
Esta unidade de entrada reconhece os caracteres impressos com tinta magnetizável, através de leitura, e
transfere os dados diretamente à memória do computador, em forma de sinais eletromagnéticos.

3.7. Leitora de Caracteres Óticos


Trata-se das leitoras de cartões óticos muito conhecidos nos concursos e vestibulares. Essas leitoras
reconhecem um conjunto de caracteres especiais, permitindo que os dados impressos com esses caracteres
sejam lidos e transferidos diretamente para a memória do computador.

Professor Luis Octavio - 24


CPC - Parte I - Conceitos Básicos
3.8. Leitora de Cartões Perfurados
Trata-se das leitoras utilizadas para a leitura de dados representados por meio de perfurações feitas num
cartão do tamanho ,aproximadamente, de uma folha de cheque.

3.9. Leitora de Fita de Papel Perfurada


Esse periférico traduz os dados perfurados em código numa fita de papel e os transmite à memória do
computador em forma de sinais eletromagnéticos.
3.10. Mesa Digitalizadora (Mesa Gráfica)
Esse periférico permite ao usuário desenhar com uma caneta especial sobre uma peça plana eletronicamente
sensível. Os movimentos da caneta são transmitidos para a tela. Isso é possível porque a mesa digitalizadora
possui uma rede de fios embutidos na sua superfície e uma caneta especial. A interseção dos fios representam os
pontos do vídeo

3.11. Microfone
Esse equipamento alimenta o computador de sons. O som humano é formado por ondas mecânicas que pode
ser transformada em sinais elétricos e posteriormente transformado em sinais digitais. O microfone capta o som
mecânico e o leva para o computador em sinais digitais através de uma placa de som.

3.12. Câmaras Digitais (Digital Camara)


São máquinas fotográficas que funcionam normalmente sem filme e que podem ser conectadas aos
computadores através de cabos para transportar as fotos diretamente para a memória do computador. Essas
máquinas podem fotografar uma quantidade de imagens delimitada pelos seus modelos. Existem modedos que
trabalham com disquete e as mais modernas com DVD (será visto posteriormente, ainda nesse capítulo).

3.13. Câmaras de Vídeo Conferência


Dispositivos (também chamados de Quickcan) que estão sendo muito utilizados na Internet e que tem por
objetivo capturar imagens em movimento para a memória do computador. Esses equipamentos funcionam apenas
quando estão ligados aos computadores. Essa é uma das características que os diferencia das câmaras digitais.

3.14. Placas Capturadoras de TV e Rádio (Vídeo Highway)


Estas placas permitem que você assista televisão e escute rádio pelo computador. Existem placas que trazem
também imagens de uma câmara de vídeo. Essas placas já estão sendo utilizadas com maior freqüência nos dias
de hoje porque seu preço foi reduzido expressivamente.

25
CPC - Parte I - Conceitos Básicos
3.15. Drive de CD-ROM
Como será visto posteriormente, CD-ROM é um tipo de memória secundária que só serve para leitura. O
aparelho que faz a leitura de CD-ROM (Drive ou Acionador) trabalha com leitura ótica. A leitura é feita da seguinte
forma: um laser reconhece as diferenças de reflexão de luz causadas pelos minúsculos “buracos” que são
“queimados” na superfície refletora e que identificam os bits gravados.
A dimensão do CD-ROM é de 4.75” , a velocidade de leitura se encontra nos dias atuais entre 2X a 100X.

4. Periféricos de Saída
4.1. Monitor ou Vídeo
 Resolução
O vídeo é composto por vários pontos (pixels) na vertical e horizontal. A multiplicação dos pixels da horizontal
pela vertical dará a resolução final do vídeo.
a) Baixa Resolução - monitores que apresentam até 200.000 pixels. Como exemplo, os primeiros micros da
linha Apple II e CGA (Color Graphic Adapter);
b) Média Resolução - entre 200.000 e 400.000 pixels, como os monitores EGA (Enhanced Graphics Adapter)
e VGA (Vídeo Graphics Adapter) e MDA (Monocrome Display Adapter);
c) Alta Resolução - entre 400.000 e 800.000 pixels, como nos monitores padrão Super VGA (SVGA);
d) Altíssima Resolução - acima de 800.000 pixels, como em alguns monitores padrão XGA (Extended
Graphics Array) e UGA (Ultra Graphics Array) .
 Definição
a) Quantida de pixels – quanto maior, maior será a definição;
b) Quantidade de cores – quanto maior, maior será a definição;
c) Distância entre os pontos – quanto maior, menor será a definição.
 Entrelaçados X Não-Entrelaçados
a) Não-entrelaçados => nele a imagem é formada (varredura) com o feixe de elétrons percorrendo cada linha
da tela uma vez a cada ciclo.
b) Entrelaçados => neste método a varredura é feita com o feixe de elétrons percorrendo primeiramente as
linhas pares e depois nas ímpares.

4.2. Impressoras
As impressoras são periféricos exclusivos de saída de dados. Existem vários modelos de impressoras, que
podem variar de velocidade de impressão, qualidade do texto impresso, ou qualidade de desenhos gráficos. A
velocidade de impressão pode variar de modelo para modelo. A resolução é medida como nos scanners em DPI.
Veja abaixo os códigos existentes para definir a velocidade de impressão destes periféricos:
CPS - caracteres por segundo
LPM - linhas por minuto
PPM - páginas por minuto
Para atingir tais velocidades, as impressoras são dotadas de sistemas de impressão diferentes e que
permitem maior ou menor velocidade. Conforme o sistema adotado o preço do equipamento será maior ou menor.
Observe a seguir os sistemas de impressão mais comuns:

I - IMPRESSORAS DE IMPACTO
São impressoras que pressionam uma fita de tinta contra o papel ou utilizam mecanismo que entre em contato
com o mesmo, gerando assim, os caracteres.

a) Impressora Matricial - esse tipo de impressora utiliza um sistema de cabeça de impressão composta por
uma matriz de agulhas (normalmente de 9 a 24 agulhas) que se movimentam independentemente uma das outras.
Conforme o caractere a ser impresso, as agulhas correspondentes à formação do mesmo são ativadas, e ao
encostar em uma fita própria que possui a tinta, o caractere é impresso no papel. Este tipo de sistema de
impressão permite uma boa velocidade de impressão.
 Média velocidade
 Baixa resolução
 Barulhentas
 Utilizada para impressão de documentos fiscais.

26
CPC - Parte I - Conceitos Básicos

b) Impressora de Linha – esse tipo de impressora utiliza uma cinta metálica onde os caracteres são
colocados em alto relevo, a cinta gira a uma velocidade alta, existindo ainda uma série de martelos por trás da fita.
Quando o caractere a ser impresso está em posição, o martelo é disparado, batendo na cinta, que por sua vez
bate na fita com a tinta gerando em seguida o caractere no papel. As impressoras de linha permitem uma média
velocidade de impressão em relação às impressoras de não-impacto e alta em relação às de impacto.
c) Impressora Margarida – Essas impressoras utilizam um elemento de impressão(engrenagem) na forma
circular, formado por um conjunto de caracteres moldados na extremidade de lâminas, uma para cada caractere.
Para imprimir, a engrenagem gira até alinhar o caractere a ser impresso com o dispositivo de impacto. Essas
impressoras utilizam o mesmo mecanismo das máquinas de datilografia. São impressoras lentas (40 CPS) e em
desuso.

II - IMPRESSORAS NÃO IMPACTO


Impressoras que geram o caractere sem pressionar mecanicamente o papel.

a) Impressora Laser – essa impressoras geram uma imagem da página, que será impressa, em um
dispositivo chamado tambor. O tambor atrai e mantém preso o toner, que é um pó químico. Quando uma folha de
papel, sensibilizada anteriormente, passa pelo tambor, retira o toner, fixando-o no papel. Depois a folha recebe
calor para fundir o toner no papel e gerar assim os caracteres ou imagens gráficas.
 Altíssima velocidade (até 300 PPM)
 Altíssima resolução
 Utilizada para impressão digital
 Alto custo

b) Impressora Deskjet (Jato de Tinta) – esse tipo é formado por um cabeçote de impressão que possui um
cartucho de tinta. Através do aquecimento ou vibração, a tinta evapora e com isso minúsculas gotículas de tinta
são enviadas ao papel, através de pequenos orifícios baseadas nos padrões dos caracteres ou gráficos que serão
impressos.
 Alta velocidade (até 20 PPM)
 Alta resolução, algumas com impressão de qualidade de foto;
 Alguns modelos imprimem frente e verso.

c) Impressora Térmica - esse modelo utiliza pinos que são aquecidos e entram em contato levemente com
um tipo de papel especial. Ao entrar em contato com o calor o papel é descolorido, gerando assim, o caractere .
Possuem o mesmo tipo de impressão que as máquinas de fax e com isso, possuem as mesmas desvantagens:
impressão monocromática e perda de informações com o tempo.

27
CPC - Parte I - Conceitos Básicos

d) Impressora Cera - é normalmente utilizada na fabricação de capas de revistas ou propagandas que


exigem alta resolução gráfica. A forma de impressão varia de acordo com o modelo, sublimação ou derretimento
térmico. No caso das que trabalham com derretimento de cera, o processo é semelhante ao das impressoras
térmicas, só que ao invés dos pinos aquecerem o papel, aquecem uma fita saturada de cera em cores diferentes.
Seu custo é razoável, porém sua manutenção é cara. Além disso, sua velocidade é baixa.

4.3. Traçadores Gráficos (Plotters)


Plotter é um dispositivo exclusivo de saída de dados, cuja função é gerar em uma folha de papel um desenho
gráfico de alta precisão. O Plotter permite gerar desenhos diversos como a estrutura hidráulica de um edifício ou
projetar o desenho de um circuito integrado. Este tipo de periférico é arduamente utilizado em engenharia de
construção, arquitetura e desenhos gráficos.
Esse periférico trabalha com canetas e, nos dias atuais, com cartuchos de tinta. Pode ser de dois tipos. O que
fixa o papel e as canetas se deslocam na horizontal e vertical. E o outro modelo, no qual a caneta só se desloca
em uma direção e o papel se desloca na outra dimensão. Esse periférico pode trabalhar com tamanhos de papel
variando do A4 ao A0, utilizando até mesmo papel vegetal. Existem modelos hoje em dia que trabalham com cera
dura e imprimem em tecido, vinil e papel acetinado (embora esses modelos por alguns autores são colocados
como impressoras).

4.5. Caixas de Som


Periférico que leva som para o meio externo. Já existem modelos amplificados podendo trabalhar com 1000
Wats de potência.
4.6. Datashow e Projetores
Utilizado para reproduzir a imagem do monitor do computador. Esse equipamento é semelhante a um
retroprojetor, porém em vez de reproduzir imagens de uma transparência, é ligado ao computador e projeta a
imagem advinda da tela deste. É muito utilizado em apresentações, seminários e congressos. A diferença entre
Datashow e Projetores é que o Datashow é colocado em cima de um retroprojetor e o Projetor não utiliza o
retroprojetor. Além disso, o Datashow se limita a imagens vindas do computador e os Projetores também
trabalham com imagens de filmadoras, televisão e vídeo cassete.

28
CPC - Parte I - Conceitos Básicos

4.7. Perfuradoras de Cartão e Fita de Papel


Esses equipamentos fazem perfurações em cartão e fita de papel, significando informações, e se encontram
em desuso.

4.8. Modeladores (Escultores Digitais)


Essa máquina constrói objetos em resina, cerâmica ou metal, a partir de desenhos feitos no computador. O
material, em pó, a ser moldado fica dentro de um cilindro colocado numa câmara inertizada com atmosfera de
nitrogênio. A modelagem é feita através da incidência do laser sobre o pó de metal, fundindo o material e
esculpindo a peça.

5. Periféricos de Entrada e Saída


Esses dispositivos levam informações do meio externo para o CPU e vice-versa.
5.1. Vídeo Touch Screen
Esses vídeos possuem uma tela sensível ao toque que ao ser pressionada pelo dedo executam tarefas como
se fosse através de um teclado. Essas telas podem ser de três tipos básicos: Pressão => é formada por duas
camadas e separadas por um espaço que contém fios. Ao se pressionar a tela os fios se encostam e fecha o
circuito no local da pressão; Infravermelho => a tela é cercada por pares de célula fotoelétrica e diodo que emite
luz infravermelha, criando uma rede ou conjunto de retículas invisíveis; Capacitivas => mesma lógica da de
pressão, porém com sensores de mudança da capacitância.

obs: a tela touch screen é apena um periférico de entrada.


5.2. Drives de Memória Secundária
São dispositivos que fazem a leitura da Memória Secundária.
Com exceção do drive de CD-ROM, as leitoras de Fita de Papel e Cartões Perfurados, todos os demais são
periféricos de Entrada e Saída. Outra observação importante é a do Winchester, que é Periférico de Entrada e
Saída e Memória Secundária em um único dispositivo.

29
CPC - Parte I - Conceitos Básicos
5.3. Modem e Placa de Fax Modem
Pense na comunicação entre dois computadores sendo feita via telefone. A comunicação via telefone é feita
através de sinais analógicos e os computadores trabalham com sinais digitais. Para resolver isso, utilizamos um
aparelho chamado MODEM. Esse aparelho converte sinais digitais em sinais analógicos (Modelador) na
transmissão e sinais analógicos em digitais (Demodulador) na recepção.
Você está pensando em mandar uma mensagem por computador utilizando-se da linha telefônica. Para isso,
você tem um MODEM ligado ao seu computador e esse à linha telefônica. As suas informações são transmitidas
pelo seu computador através de sinais digitais, enquanto o seu MODEM converte estes sinais em analógicos para
o seu telefone. O interlocutor recebe essa mensagem em sinais analógicos, e terá que ter também um MODEM,
que transforme estes sinais em digitais, para que a informação seja recebida e mostrada no vídeo que o mesmo
está usando.

Sinal Analógico
Sinal Digital Sinal Digital

MODULADOR
DEMODULADOR

Padrão Significado
V.22 Provê 1200 bits ppr segundo a 600 baud
V.22bis O primeiro padrão "mundial", define 2400 bits por segundo a 600 baud
V.32 Provê 4800 e 9600 bits por segundo a 2400 baud
V.32bis Provê 14,400 bits por segundo e retroativamente a 12,000, 9600, 7200, e 4800 bits por segundo
V.32terbo Provê 19,200 bits por segundo e retroativamente a 12,000, 9600, 7200, e 4800 bits por segundo;
pode operar a taxas ainda maiores com compressão; não é um padrão da CCITT/ITU
V.34 Provê 28,800 bits por segundo e retroativamente a 24,000 e 19,200 bits por segundo e compatível
retroativamente com o V.32 e V.32bis
V.34bis Provê até 33,600 bits por segundo e retroativamente a 31,200 ou taxas de transferências do V.34
V.35 Interface entre dispositivo de acesso a rede e rede de pacotes, com taxas de transferência maiores
que 19.2 Kbps. V.35 pode usar bandas de vários circuitos de telefonia como um grupo. Normalmente
utilizados em links digitais de dados, e geralmente este padrão só é disponibilizado em modens
especiais.
V.42 Mesmas taxas de transferência que o V.32, V.32bis, e outros padrões, porém com melhor correção de
erro, e conseqüentemente mais estável e confiável.
V.42bis Mesmas taxas de transferência que o V.42 porém com algoritmo de compressão mais eficiente, e
maior estabilidade.
V.90 Provê até 56,000 bits por segundo na teoria (mas na prática, alguma coisa menor). Derivada da
tecnologia x2 da 3Com (US Robotics) e da tecnologia K56flex da Rockwell.
V.92 Provê até 56.000 bits por segundo porém com vantagens na transferência de dados bilateral além de
melhorias na velocidade de equalização (handshaking) entre modens e chamada em espera. Este
padrão foi definido tendo como meta principal, melhorar os acessos discados à internet.

30
CPC - Parte I - Conceitos Básicos
Capítulo III – Sistemas Operacionais - Concorrência

1. Núcleo do Sistema (Kennel)


É o conjunto de procedimentos que propiciam serviços aos usuários do sistema e suas aplicações (tratamento
de interrupções, gerenciamento de memória, segurança e outras).
Tipos de Kernel
 Monolítico: é um kernel que implementa um interface de alto nível para possibilitar chamadas de sistema
específicas para gestão de processos, concorrência e gestão de memória por parte de módulos dedicados que
são executados com privilégios especiais. Trocando em miúdos, é um kernel apresentado em um só bloco, sendo
necessário carregá-lo inteiro;
 Modular: é um kernel onde é subdividido em vários módulos. Podendo ser carregado os módulos conforme a
necessidade.
 Híbrido: é um kernel parte monolítico, parte modular. A base principal do kernel é monolítico, sendo o restante
modular.

2. System Calls
Os programas solicitam serviços ao Sistema Operacional através das chamadas de sistema (system call).
Elas são semelhantes às chamadas de sub-rotinas. Entretanto, enquanto as chamadas de sub-rotinas são
transferências para procedimentos normais do programa, as chamadas de sistema transferem a execução para o
sistema operacional.
A parte do sistema operacional responsável por implementar as chamadas de sistemas é normalmente
chamada de núcleo ou kernel. Os principais componentes do kernel de qualquer sistema operacional são a
gerência de processador, a gerência da memória, o sistema de arquivos e a gerência de entrada e saída.
Em função da complexidade interna de um kernel completo, muitos sistemas operacionais são
implementados em camadas. Primeiro, um componente de software chamado micronúcleo ou microkernel
implementa os serviços mais básicos associados com sistemas operacionais. Em cima do microkernel, usando os
seus serviços, o kernel implementa os demais serviços.
Alguns sistemas permitem que as aplicações acessem tanto as chamadas de sistema suportadas pelo kernel
quanto aos serviços oferecidos pelo microkernel. Entretanto, na maioria das vezes, apenas o código do kernel
pode acessar os serviços do microkernel, enquanto aplicações ficam restritas às chamadas de sistemas do kernel.
Partes do System Calls
 Gerência de Memória: responsável pela alocação e desalocação de memória;
 Gerência de Processos: responsável pela criação, estados, sincronização e eliminação de processos;
 Gerência de Entrada e Saída: responsável pela operações de entrada e saída.

3. Shel l
O mais importante programa de sistema é o interpretador de comandos: SHELL. Sua tarefa é receber
comandos do usuário e executa-los através das chamadas de sistemas. O Shell não precisa, obrigatoriamente, ser
um programa de sistemas, ou seja, um módulo a parte do sistema operacional. Ele pode fazer parte do sistema
operacional.

4. Modos de Acesso

31
CPC - Parte I - Conceitos Básicos
As instruções solicitadas pelas aplicações podem ser privilegiadas ou não-privilegiadas. As privilegiadas
são as que colocam em risco a segurança do sistema e as que não colocam em risco, são chamadas de não-
privilegiadas.
Modos de acesso são mecanismos, armazenados em registradores, que permitem que as aplicações
executem instruções privilegiadas (modo Kennel) ou instruções não privilegiadas (modo usuário).
Para instruções de modo usuário, essas são executadas pela aplicação que solicitou. Para execução de
instruções de modo Kennel, o mecanismo funciona da seguinte forma:
1º - Aplicação solicita o serviço pela System Call;
2º - System Call altera o modo usuário para o modo Kennel;
2º - O sistema operacional realiza a solicitação feita;
3º - Modo retorna para usuário;
4º - Programa continua sua execução;

5. Organizações de Sistema Operacional


1º Sistemas Monolíticos: divide o sistema em rotinas que podem interagir entre elas.
2º Sistemas em Camadas: divide o sistema em camadas sobrepostas, onde os módulos de uma camada
só podem fazer referência módulos de camadas inferiores.
3º Sistemas Cliente-Servidor: divide o sistema em processos que são responsáveis por um determinado
conjunto de serviços. A aplicação que solicita um serviço é chamada de Cliente e o processo
responsável pelo serviço de Servidor.
6. Processo/Tarefa
Um processo ou tarefa é uma porção/parte de um programa em execução. Um programa pode consistir de
várias tarefas/processos.
Um programa é uma seqüência de instruções, algo passivo. Um processo é um elemento ativo: podendo
alterar o seu estado, à medida que executa um programa. É o processo quem faz as chamadas de sistemas
(systems calls), ao executar os programas.
É possível quem vários processos executem o mesmo programa ao mesmo tempo, através de uma cópia do
código do aplicativo, porém cada processo trabalhará sobre uma área de variáveis privativa.
6.1. Modelo de Processos
Todos os programas que rodam em um PC (o sistema operacional, inclusive) são compostos de um conjunto
de processos.
PROCESSO = programa em execução + seu contexto (formado por: valores das variáveis + valores dos
registradores do hardware).
Multiprogramação: rápido chaveamento do processador entre os diversos processos.
Conseqüência: a velocidade de execução de um processo não é constante. Portanto, cuidados especiais
precisam ser tomados para processos com características de processamento em tempo real.
6.2. Ciclos de um processo
Os processos são criados e destruídos. Podendo ser através de um terminal ou sessão de trabalho. A forma
mais flexível de operação é permitir que processos possam ser criados livremente, através de chamadas de
sistema. Além da chamada de sistema que “cria processo”, serão necessárias, também, chamadas para
“autodestruição do processo” e “eliminação de outro processo”.
A maioria dos processos do sistema executa programas dos usuários. Entretanto, alguns podem realizar
tarefas do sistema. São processos do sistema (daemon), não dos usuários. Por exemplo: um processo que envia
os dados para a impressora não está associado a nenhum usuário; caracterizando assim um processo do próprio
Sistema Operacional.
Após ter sido criado, o processo passa a ocupar o processador. Cada vez que um processo deseja ocupar o
processador (espera a fila para poder ser processado), estes momentos são chamados de “ciclos de processador”.
Porém, da mesma forma, o processo pode estar esperando para ocupar uma operação de E/S (I/O), estes
momentos são chamados de “ciclos de E/S”. Um processo que utiliza muito o processador é chamado de cpu-
bound. O seu tempo de execução é definido principalmente pelo tempo dos seus ciclos de processador. Por outro
lado, um processo que utiliza muito as operações de E/S é chamado de I/O-bound. Relacionamento entre
processos (Processos Pai e Filho).
Dependendo do sistema operacional considerado, pode ou não haver algum tipo de relacionamento entre os
processos. Alguns sistemas suportam o conceito de grupo de processos.
Em muitos sistemas os processos são criados por outros processos, através de chamada de sistema. Nesse
caso, é possível definir uma hierarquia de processos. O processo que faz a chamada de sistema é chamado de
processo pai. O processo criado é chamado de processo filho. Um mesmo processo pai pode estar associado a

32
CPC - Parte I - Conceitos Básicos
vários processos filhos. Os processos filhos, por sua vez, podem criar outros processos. O Sistema Operacional
suspende a execução do processo pai até que o filho termine.
6.3. Estados de um processo
Um processo poderá adquirir vários estados, desde a sua criação até a sua destruição:
 Criação(start): criação do processo;
 Apto(ready): após ser criado ele entra em um ciclo de processador. Deixando de forma clara a
aptidão do processo ou prontidão de execução deste. Caso o processador esteja ocupado com
outro processo, este deverá esperar(“fila de apto” ou “ready queue”).
 Executando(running): o processo está ocupando o processador para execução deste, fazendo ou
não chamadas de sistema.
 Bloqueado(blocked): caso o processo esteja executando e até chamada seja atendida, o processo
não pode continuar sua execução. Ele fica bloqueado e só volta a disputar o processador após a
conclusão da chamada. Somente após a ocorrência de evento, ou seja uma interrupção, é que este
processo voltará a estar apto.
 Destruição(destroy): a destruição do processo poderá ser devido a uma função de chamada do
sistema ou por solicitação do próprio processo. Entretanto, alguns sistemas podem resolver abortar
o processo, caso um erro crítico tenha acontecido durante uma operação de E/S.
O escalonador (scheduler) é o responsável por efetuar a seleção dos processos na fila de apto.
6.4. Considerações sobre os Processos
 estado do processo;
 memória alocada;
 valores do contador de programa + ponteiro de pilha;
 estado dos seus arquivos abertos;
 prioridade;
 tudo o que for necessário para que o processo possa retomar a sua execução mais tarde do ponto
onde parou na troca de contexto.
6.5. Proteção entre processos
Na multiprogramação diversos processos compartilham o computador. É necessário que o Sistema
Operacional ofereça proteção aos processos e garanta a utilização correta do sistema. Há vários tipos de
proteções dentro do próprio computador onde é oferecida pelo Sistema Operacional:
 Modos de operação do processador (usuários): para obter a proteção apropriada para o sistema é
necessário o auxílio da arquitetura do computador, onde define dois modos de operação: modo usuário e
modo supervisor. O modo supervisor não há restrições de execução de instruções, quanto ao modo
usuário há algumas instruções (instruções privilegiadas) que não podem ser executadas;
 Proteção dos periféricos: para proteger os periféricos, as instruções de E/S são tornadas privilegiadas. Se
um processo de usuário acessar diretamente um periférico, ocorre uma interrupção. O sistema
operacional é ativado, já em modo supervisor, e o processo de usuário é abortado. A única forma do
processo de usuário realizar uma operação de E/S é através de uma system call.
 Proteção da memória: para que nenhum processo carregue em parte da memória onde haja outro processo
há a necessidade de uma proteção. Uma das formas mais simples e eficaz são os registradores de
limites. Estes servem simplesmente para determinar os limites (início e fim) de um processo; evitando
assim o carregamento em uma parte “privada” de outro processo.
6.5. Interrupções
O mecanismo de interrupções é um recurso comum dos processadores de qualquer porte. A função
específica das interrupções é fazer com que um controlador de periféricos1 chame a atenção do processador.
Após o desvio da atenção do processador, o tratador de interrupções será responsável por atendê-la. Este realiza
as ações necessárias em função da ocorrência da interrupção. Quando um tratador termina, a execução volta para
a rotina interrompida, sem que essa percebe que foi interrompida.
É importante frisar que uma interrupção pode ser ativada por software(traps), como exemplificado, ou por
hardware. No caso de ativação por hardware, o momento exato não pode ser previsto pelo programa. A princípio, o
tratador poderá ser ativado em qualquer ponto da execução de um programa.
Quando uma interrupção acontece, são guardadas todas as informações necessárias para que este
recomece exatamente do mesmo ponto; ou seja, o conteúdo de todos os registradores deverá ser o mesmo que no
momento em que ocorreu a interrupção. O local mais indicado é a pilha de execução. Portanto, o processador
guarda o conteúdo de todos os registradores na pilha de execução e dispõe de uma instrução (retorno de
interrupção) onde repõe o conteúdo original dos registradores e faz o processador retomar a execução do
programa interrompido.
Como dentro do computador há diversos controladores capazes de gerar interrupções, a forma mais simples
de identificar a origem de uma interrupção é associada a cada controlador um tipo diferente de interrupção. Cada
tipo de interrupção é identificado por um número, definidas pelos projetistas do sistema.

33
CPC - Parte I - Conceitos Básicos
Somente em alguns casos em específico uma interrupção não pode ser executada. Para isso, é necessário
desligar o mecanismo de interrupções temporariamente, enquanto o programa realiza uma tarefa crítica que não
pode ser interrompida (habilitar e desabilitar interrupções). Portanto, há uma prioridade entre as interrupções.
A função específica das interrupções é fazer com que um controlador de periféricos chame a atenção do
processador.
A Intel define uma interrupção como "elas [as interrupções] alteram o fluxo normal do programa para
manipular eventos externos ou para reportar erros ou condições de exceção".
Esta definição é um tanto simplista e deixa de fora alguns aspectos relevantes. O primeiro deles é como
ocorre uma interrupção.
Uma interrupção pode ser gerada por software ou por hardware. Tomemos como exemplo uma interrupção
de hardware quando uma tecla é digitada. Se tudo estiver configurado corretamente, quando uma tecla é digitada,
o teclado envia um pedido de interrupção para a CPU. Neste caso, a CPU pára o código em execução e chama
uma função que fará a leitura da porta 0x60 (a porta de saída do teclado) para determinar o que o teclado está
enviando. Esta função, então, deverá devolver o controle para o que estava sendo executado antes do teclado ter
enviado o pedido de interrupção.
O código original, com freqüência, nem fica sabendo que ocorreu uma interrupção. Uma interrupção também
pode ser gerada através de software através da instrução Assembly INT <número da interrupção>.
6.6. Pilha
A pilha é uma área especial de memória dentro do processador.
Informações que se guarda na pilha (com PUSH) são colocadas no topo. Quando informações são tiradas da
pilha, estas também são tiradas do topo. Isto resulta numa regra simples: os últimos dados que entram na pilha
são os primeiros a sair. A pilha é muito utilizada pelas rotinas dos códigos operacionais do computador.
Como as interrupções podem ser usadas
O teclado, assim como qualquer outro dispositivo do computador pode disparar uma interrupção: HDs, drives
de disquete, placas de som, drives de CD-ROM, placas de rede, etc.
Todos utilizam interrupções por dois motivos: para avisar o sistema operacional que completaram alguma
tarefa ou que possuem dados para o sistema operacional.
O PIT (Programable Interrupt Timer - Temporizador de Interrupções Programável) também dispara
interrupções em intervalos de tempo pré-determinados, o que é muito útil na multitarefa preemptiva.
Programas de usuários também podem usar interrupções. O MS-DOS e a BIOS fornecem várias
interrupções para este fim. As interrupções da BIOS só funcionam em modo real.
6.6.ISR
Uma ISR (Interrupt Service Routine - Rotina do Serviço de Interrupções) é o código executado quando ocorre
uma interrupção, portanto, existe uma ISR para cada interrupção. A forma como a CPU fica sabendo qual ISR
executar será analisada mais adiante.
6.7. IRQ e PIC
As IRQs (Interrupt Request - Requisição de Interrupção) são interrupções disparadas pelo hardware. Existem
16 no total e são numeradas de 0 a 15. O PIC (Programable Interrupt Controller) é a ponte entre as IRQs e a CPU.
O PIC mapeia estas IRQs em dois blocos com 8 IRQs cada. É padrão que as 8 primeiras IRQs sejam mapeadas
em interrupções de 8 a 15 e que as 8 últimas seja mapeadas em interrupções de 112 a 119.
Isto acaba interferindo com as exceções (o que seja visto adiante), de modo que se torna necessário
remapear as IRQs para um bloco diferente de números de interrupção (assunto que será tratado num módulo
próprio).
Quando ocorre uma interrupção de hardware, uma série de eventos é desencadeada. Para simplificar o
processo e aumentar a compatibilidade dos dispositivos nas diferentes plataformas, quando um dispositivo dispara
uma IRQ, ele a dirige para o PIC enviando toda a informação necessária. O PIC identifica o número da IRQ e
depois avisa a CPU. A CPU, assim que terminar a instrução corrente, executa o número da interrupção recebida.
6.8. IDT
Uma IDT (Interrupt Descriptor Table - Tabela de Descritores de Interrupção) é um array de descritores que é
usada para associar interrupções e exceções com as respectivas ISRs. É o mapa para a CPU saber qual a rotina
que precisa ser executada quando receber uma chamada de interrupção. Cada descritor é composto por 8 bytes e
a IDT pode conter no máximo 256 descritores (o total de interrupções no PC também é 256).
Quando se cria uma IDT, não é necessário que a tabela contenha 256 descritores, basta usar um para cada
interrupção que será tratada no seu sistema operacional. Para informar a localização da IDT para a CPU, usamos a
instrução Assembly LIDT.
6.9. Exceção
Uma exceção é uma interrupção que ocorre quando alguma coisa dá errado com o código que está sendo
executado. Pode ser uma divisão por zero, uma tentativa de acessar um segmento inexistente ou coisa parecida.
Existem 15 tipos de exceções na CPU x86, classificadas como interrupções de 0 a 16, o que significa que
existem algumas "falhas" na seqüência. Estas falhas correspondem a interrupções reservadas pela Intel, talvez
para uso futuro.
34
CPC - Parte I - Conceitos Básicos

As interrupções das exceções são as seguintes:

6.10. Programação Concorrente


O termo “programação concorrente” vem do inglês “current programming” , onde significa “acontecendo ao
mesmo tempo”. Portanto, a aplicação deste verbete dentro da linguagem de Sistemas Operacionais é que os
processos disputam (concorrem) pelos mesmos recursos do hardware e do Sistema Operacional. Ao mesmo
tempo, os programas concorrentes cooperam para o êxito do programa como um todo.
A programação concorrente é comum em um sistema multiusuário, onde um mesmo programa seja
executado simultaneamente por vários usuários.
Considere um programa que deve ler registros de um arquivos, colocar em um formato apropriado e então
enviar para uma impressora. Inicialmente, o processo envia um comando para a leitura do arquivo e fica
bloqueado. O disco então é acionado para realizar a operação de leitura. Uma vez concluída a leitura, o processo
realiza a formatação e inicia a transferência dos dados para a impressora. Como trata-se de uma impressora física,
o processo executa um laço no qual os dados são enviados para a porta serial/paralela/USB apropriada. Como o
buffer da impressora é relativamente pequeno, o processo fica preso até o final da impressora.
Dois processos dividem o trabalho. O processo leitor é responsável por ler os registros do arquivo, formatar e
colocar em um buffer na memória. O processo impressor retira os dados do buffer e envia para a impressora. É
suposto aqui que os dois processos possuem acesso à memória onde está o buffer.
O processo concorrente é mais eficiente, pois consegue manter o disco e a impressora trabalhando
simultaneamente. O tempo total para realizar a impressão do arquivo é menor quando a solução concorrente é
empregada. É claro que a solução possui limitações:
 Situação: se o processo leitor for sempre mais rápido, o buffer ficará cheio, e então o processo leitor
terá que esperar até que o processo impressor retire algo do buffer.
 Situação: se o processo impressor for impressor for sempre mais rápido, eventualmente o buffer
ficará vazio e ele terá que esperar pelo processo leitor.
6.11. Problemas encontrados
Quando trabalhamos com vários processos ao mesmo tempo, é necessário não só a comunicação como o
compartilhamento de dados. A passagem de dados acontece quando um processo escreve em uma variável que
será lida por outro processo.
A quantidade exata de memória compartilhada entre os processos pode variar conforme o programa.
Processos podem compartilhar todo o seu espaço de endereçamento, apenas um segmento de memória, algumas
estruturas de dados ou algumas variáveis. O sistema operacional arranja para que processos acessem as mesmas
posições de memória, total ou parcialmente.
Portanto, um problema poderá ser ocasionado, por exemplo, se dois processos, escrita e leitura, acessam a
mesma estrutura de dados simultaneamente. Não é possível eliminar as variáveis compartilhadas de um programa
concorrente quando elas são o mecanismo de comunicação entre os processos. A solução está em controlar o
acesso dos processos a essas variáveis compartilhadas de modo a garantir que um processo não acesse uma
estrutura de dados enquanto essa estiver sendo atualizada por outro processo.
Vamos chamar de seção crítica aquela parte do código de um processo que acessa uma estrutura de dados
compartilhada. O problema da seção crítica está em garantir que, quando um processo está executando sua seção
crítica, nenhum outro processo entre na sua respectiva seção crítica.
35
CPC - Parte I - Conceitos Básicos
Uma solução para o problema da seção crítica estará correta quando apresentar as seguintes propriedades:
a) ( ) Existe exclusividade mútua entre os processos com referência a execução das respectivas seções críticas;
b) ( ) Quando um processo P deseja entrar na seção crítica e nenhum outro processo está executando a sua
seção crítica, o processo P não é impedido de entrar;
c) ( ) Nenhum processo pode ter seu ingresso na seção crítica postergado indefinidamente (deadlock);
d) ( ) A solução não depende das velocidades relativas dos processos.
Uma solução simples para o problema da seção crítica é desabilitar interrupções. Toda vez que um processo
vai acessar variáveis compartilhadas ele antes desabilita as interrupções. Dessa forma, ele pode acessar as
variáveis com a certeza de que nenhum outro processo vai ganhar o processador. No final da seção crítica, ele
torna a habilitar as interrupções. Esse esquema é efetivamente usado em sistemas pequenos e dedicados a uma
única aplicação, como em sistemas embutidos (embedded systems). Também é usado internamente por alguns
sistemas operacionais. Entretanto, desabilitar as interrupções vai contra os mecanismos de proteção discutidos
anteriormente e não pode ser considerado um método genérico para resolver o problema da seção crítica.
Desabilitar interrupções também diminui a eficiência do sistema à medida que os periféricos não são atendidos
durante todas as execuções de seções críticas.
Existem na literatura soluções que empregam um protocolo de acesso. Nessas soluções, os processos
executam um determinado algoritmo tanto na entrada quanto na saída de sua respectiva seção crítica. Tais
algoritmos não incluem nenhuma chamada ao Sistema Operacional, nem o emprego de instruções privilegiadas.
Entretanto, eles não são muito empregados por duas razões:
_ Eles são bastante complexos, o que dificulta a depuração dos programas;
_ É apresentar a propriedade chamada busy-waiting. É dito que busy-waiting quando um processo
aguarda em um laço a sinalização de um evento. Por exemplo, quando um processo Leitor
gasta tempo de processador sem realizar nenhum processamento útil.
Um deadlock pode surgir quando soluções que apresetam busy-waiting são empregradas em sistemas
que utilizam prioridades para escalonar os processos.
Outras soluções para o problema de Seção Cr ít ica
_ Spin-lock ou Test-and-Set
_ Semáforo
6.12. Spin-Lock ou Test -and-Set
Essa solução é baseada em uma instrução de máquina chamada “Test-and-Set”. Considere uma instrução
de máquina que troca (swap) o valor contido em uma posição de memória com o valor contido em um registrador.
A posição de memória e o registrador a serem utilizados são especificados como operandos da instrução. Veja:
Instrução SWAP( reg, mem )
[mem] _ aux : copia conteúdo da posição [mem] para um registrador auxiliar
reg _ [mem] : copia conteúdo do registrador para a posição [mem] da memória
aux _ reg : copia conteúdo do registrador auxiliar para o registrador reg
É essencial que o processador execute toda a instrução de máquina SWAP sem interrupções e sem perder o
acesso exclusivo ao barramento do computador. Isso é normal em máquinas com vários processadores acessado
a mesma memória.
A seção crítica será protegida por uma variável que ocupará a posição [mem] da memória. Essa variável é
normalmente chamada de lock (fechadura). Quando o lock contém “0”, a seção crítica está livre. Quando lock
contém “1”, ela estará ocupada. A variável é inicializada com “0”.
A vantagem do Spin-Lock é sua simplicidade, aliada ao fato de que não é necessário desabilitar
interrupções. A instrução de máquina necessária está presente em praticamente todos os processadores atuais.
Essa mesma solução funciona em máquinas com vários processadores, a partir de alguns cuidados na
construção do hardware.
Entretanto, o Spin-Lock tem como desvantagem o busy-waiting. O processo que está no laço de espera
executando “swap” ocupa o processador enquanto espera. Além disso, existe a possibilidade de postergação
indefinida, quando vários processos estão esperando simultaneamente para ingressar na seção crítica e um
processo “muito azarado” sempre perde na disputa de quem “pega antes” o valor “0” colocado na variável lock.
Na prática o Spin-Lock é muito usado em situações nas quais a seção crítica é pequena. Nesse caso, a
probabilidade de um processo encontrar a seção crítica ocupada é baixíssima, o que torna o busy-waiting e a
postergação indefinida situações teoricamente possíveis, mas altamente improváveis.
6.13. Semáforo
Um mecanismo de sincronização entre os processos e muito empregado é o semáforo. O semáforo é um
tipo abstrato de dado composto por um valor inteiro e uma fila de processos. Somente duas operações são
permitidas sobre o semáforo. Elas são conhecidas como P (do holandês proberen, testar) e V (do holandês
verhogen, incrementar).
Quando um processo executa a operação P sobre um semáforo, o seu valor inteiro é decrementado.
Caso o novo valor do semáforo seja negativo, o processo é bloqueado e inserido no fim da fila desse
semáforo.
36
CPC - Parte I - Conceitos Básicos
Quando um processo executa a operação V sobre um semáforo, o seu valor inteiro é incrementado. Caso
exista algum processo bloqueado na fila desse semáforo, o primeiro processo da fila é liberado. Podemos sintetizar
o funcionamento das operações P e V sobre o semáforo S da seguinte forma:
P(S):
S.valor = S.valor - 1;
Se S.valor < 0
Então bloqueia o processo, insere em S.fila.
V(S):
S.valor = S.valor + 1;
Se S.fila não está vazia
Então retira processo P de S.fila, acorda P.
Para que semáforos funcionem corretamente, é essencial que as operações P e V sejam atômicas. Isto é,
uma operação P ou V não pode ser interrompida no meio e outra operação sobre o mesmo semáforo iniciada.
Semáforos tornam a proteção da seção crítica muito simples. Para cada estrutura de dados compartilhada,
deve ser criado um semáforo S inicializado com o valor 1. Todo processo, antes de acessar essa estrutura, deve
executar um P(S), ou seja, a operação P sobre o semáforo S associado com a estrutura de dados em questão. Ao
sair da seção crítica, o processo executa V(S).
Inicialmente, a seção crítica está livre, e o valor de S é 1. O primeiro processo a chegar executa P(S). O novo
valor de S é zero, e o processo continua sua execução entrando assim na seção crítica. O segundo processo a
chegar também executa P(S). Mas, agora, o valor de S ficou -1, e o segundo processo é bloqueado.
Caso um terceiro processo tente acessar a estrutura de dados, ele também executa P(S), S passa a valer -2,
e o terceiro processo também é bloqueado. É interessante observar que, se o valor de um semáforo é negativo,
isso significa que existem processos na fila de espera desse semáforo e, mais, que o valor absoluto do semáforo é
igual ao número de processo na fila de espera.
Quando o primeiro processo sai da seção crítica, ele executa V(S). Isso faz com que o valor de S passe para
-1, e o segundo processo seja liberado. O segundo processo acessa a estrutura de dados e também executa V(S),
fazendo com que o valor de S passe a ser zero e liberando o terceiro processo. Quando finalmente o terceiro
processo sai da seção crítica, ele executa V(S), e S volta a valer 1. Nesse caso nenhum processo é liberado, pois
a fila do semáforo está vazia, e voltamos à situação inicial.
Além de resolver o problema da exclusão mútua, semáforos também podem ser usados para estabelecer
relações de procedência entre processos; somente liberando o processo pai após a liberação do processo filho.
Vamos considerar programas concorrentes construídos a partir da troca de mensagens entre processos.
Uma aplicação imediata para esse mecanismo está nos sistemas distribuídos. Nesse caso, processos
executando em diferentes máquinas não possuem variáveis compartilhadas. Eles trocam informações através de
mensagens via uma rede de comunicação.
Tipicamente, o mecanismo que permite a troca de mensagem entre processo é implementado pelo sistema
operacional. Ele é acessado através de duas chamadas de sistema básicas:
 Send: possui pelo menos dois parâmetros: a mensagem a ser enviada e o destinatário da
mensagem. Existem dois tipos de endereçamento. No endereçamento direto, a mensagem é
endereçada explicitamente a um processo em particular. O processo remetente somente pode
enviar mensagens para os processos dos quais ele conhece o identificador ou processos que na
comunicação fazem parte do mesmo programa. Alguns sistemas trabalham com endereçamento
indireto. Nesse caso, o sistema operacional implementa um recurso chamado de caixa postal.
Mensagens não são enviadas para processos, mas sim para caixas postais. As mensagens
deverão ser retiradas da caixa postal por outro processo. O sistema operacional normalmente
fornece system call que permitem a criação e a destruição destas caixas.
Também é o sistema operacional que controla quais processos possuem o direito de ler ou escrever
na caixa postal. O processo remetente somente pode enviar mensagens para as caixas postais das
quais ele conhece o identificador, ou para as caixas postais que possuem um identificador público.
Além disso, deve possuir o direito de escrita sobre a caixa postal em questão.
 Receive: possui pelo menos um parâmetro: o endereço da variável do processo onde deverá ser
colocada a mensagem lida. Em alguns sistemas, todas as mensagens recebidas pelo processo são
enfileiradas, e a chamada Receive retorna a primeira mensagem da fila. Opcionalmente, a chamada
Receive possui como segundo parâmetro o identificador do processo do qual se deseja receber a
mensagem. Nesse caso, a chamada receive somente será satisfeita com uma mensagem do
processo especificado como parâmetro. Quando o endereçamento indireto é usado, a chamada
Receive possui como segundo parâmetro o identificador da caixa postal em questão. Um processo
somente pode retirar mensagens das caixas postais das quais ele conhece o identificador, ou de
caixas postais que possuem um identificador público. Além disso, ele deve possuir o direito de
leitura sobre a caixa postal em questão.

37
CPC - Parte I - Conceitos Básicos
É importante ressaltar que as caixas postais permitem uma comunicação de N para N processos,
enquanto o endereçamento direto permite uma comunicação de 1 para 1 processo.
Uma forma popular de usar mensagem é a chamada remota de procedimentos (RPC – remote
procedure call). Nesse caso, o processo chamador utiliza o Send para solicitar a execução de uma
determinada rotina em outro processo, passando os parâmetros para essa rotina com parte da
mensagem. Em seguida, ele executa um Receive, para receber o pedido de execução de uma
rotina, executa a rotina com os parâmetros recebidos na mensagem e utiliza o Send para enviar os
resultados da execução ao processo chamador. Dessa forma, a comunicação entre processos
baseada em mensagens é disfarçada de uma simples chamada de subrotina.
6.14. DeadLocks
Embora deadloacks possam ocorrer em diversos pontos de um sistema operacional, eles são um dos
principais problemas dos programas concorrentes. Também é comum a ocorrência de deadlocks envolvendo
arquivos e periféricos.
Por definição, um conjunto de N processos está em deadlock quando cada um dos N processos está
bloqueado à espera de um evento que somente pode ser causado por um dos N processos do conjunto.
Obviamente, essa situação somente pode ser alterada por alguma iniciativa que parta de um processo fora
do conjunto dos N processos.
Existem 4 condições necessárias para ser possível à ocorrência de um deadlock em determinado sistema.
São elas:
 Existência de recursos que precisam ser acessados de forma exclusiva;
 Possibilidade de processos manterem recursos alocados enquanto esperam por recursos adicionais;
 Necessidade dos recursos serem liberados pelos próprios processos que os estão utilizando;
 Possibilidade da formação de uma espera circular.
Existem várias formas de tratar o problema do deadlock. Infelizmente, isso não é facilmente eliminado.
Uma forma usual é deixar acontecer o deadlock, detectá-lo e então eliminá-lo. A detecção pode ser feita de
forma automática ou manual. O deadlock é eliminado através da destruição dos processos envolvidos e da
liberação dos respectivos recursos.

38
CPC - Parte I - Conceitos Básicos
Capítulo IV – Redes

1. Conceitos de Transmissão
1.1. Modos de comunicação de Dados
Na comunicação de dados existe transmissor (pessoa que envia a mensagem) e receptor (pessoa que
recebe a mensagem). Os modos de comunicação são definidos pela quantidade de transmissores.
 Simplex => Nesse modo existe um único transmissor. Como exemplo podemos citar a televisão.
 Half Duplex => Nesse modo temos dois transmissores, só que ao mesmo tempo temos apenas
um transmissor. É o caso do rádio amador.
 Full Duplex => Nesse modo temos dois ou mais transmissores, até mesmo no mesmo momento .
É o caso do telefone.
1.2. Tipos de Transmissão
É a forma como os bits são transmitidos.
 Serial => É o tipo de transmissão onde são passados bits um a um.
 Paralela => É a transmissão onde são passados vários bits ao mesmo tempo. Para cada bit,
existe um fio correspondente.
1.3. Ritmos de Transmissão
 Assíncrona => para cada caractere a ser transmitido, utiliza-se um elemento de sinalização para
indicar o início do caractere (START) e outro para indicar o término do caractere (STOP).
 Síncrona => utiliza-se um caractere de sincronismo no início da transmissão, transmite-se os bits
seqüencialmente e envia-se um caractere de sincronismo no fim da transmissão.
1.4. Comutação de Dados
É a alocação dos recursos da rede para transmissão.
 Comutação de Circuitos => os dados são enviados por um canal dedicado.
 Comutação de Mensagens => é inserido o endereço de destino, pois não é utilizado um canal
dedicado, e a mensagem é transmitida de nó em nó, até chegar no destino.
 Comutação de Pacotes => é inserido o endereço de destino, pois não é utilizado um canal
dedicado, e a mensagem é divida em blocos de tamanho limitados (pacotes), sendo transmitidos
de nó em nó, até chegar no destino.
1.5. Modulação
É o processo pelo qual são modificados uma ou mais características de uma onda denominada
portadora.
 FSK (Frequency Shift Keying – Modulação por desvio de freqüência) => altera a freqüência da
onda portadora.
 ASK (Amplitude Shift Keying – Modulação por desvio de amplitude) => altera as
características da amplitude da onda portadora, de acordo com os dados a serem transmitidos.
 PSK (Phase Shift Keying – Modulação por desvio de fase) => altera a fase da onda portadora,
de acordo com os dados a serem transmitidos.
 DPSK (Differential Phase Shift Keying – Modulação por desvio de fase diferencial) => é uma
variação da PSK, mas onde cada bit não se associa a uma fase da portadora, mas sim, a uma
mudança ou não desta mesma fase, ou seja, para cada bit 0, efetua-se uma inversão de 180o na
fase e,no bit 1, não se altera a fase.
 QAM (Quadrante Amplitude Modulation – Modulação por amplitude em Quadrante) =>
modifica simultaneamente duas características da portadora: amplitude e fase.
1.6. Fatores que interferem na Transmissão
 Atenuação: é a perda na intensidade ou a perda na amplitude do sinal da onda, conforme esta se
vai propagando através da linha.
 Ruído: é a interferência gerada por sinais indesejáveis que aparecem no canal de comunicação,
distorcendo ou mascarando os sinais de informações.
 Eco: são sinais refletidos, ocasionados pela mudança de impedância na linha, que voltarão por
esta linha, podendo corromper os sinais que estão sendo transmitidos.

39
CPC - Parte I - Conceitos Básicos
 Diafonia: transbordamento de sinal de um fio adjacente,ou seja, sinais de uma linha se
misturando a sinais de outras.
 Drop Out: perda por um curto intervalo de tempo da onda portadora do sinal.
 Gain Hits: variações bruscas no ganho de amplitude.
 Phase Hits: mudanças repentinas na fase de um sinal.
1.7. Métodos de Controle de Congestionamento
Congestionamento é um excesso de pacotes em uma sub-rede, podendo gerar um deadlock (condição
de impasse). Os métodos de Controle de Congestionamento são:
 Descarte de Pacotes: é um método de controle, que permite eliminar pacotes por excesso de
informação armazenada.
 Pré-alocação de buffers: neste método se já estiverem reservados os buffers, cria-se uma nova
rota.
 Controle isorrímico: neste método são limitados o número de pacotes em trânsito, através de
permissão.
 Controle de Tráfego no Enlace: cada nó monitora a utilização de percentual de cada uma das
linhas de saída.
Obs: quando ultrapassar o limiar aceito, a linha de saída entra em estado de espera.
1.8. Detecção de Erros
 Paridade Vertical ou VRC (Vertical Redundancy Check): este método pode usar a técnica de
paridade par ou paridade impar, onde a soma dos bits “1” de um caractere totaliza um valor par ou
impar. Insere-se um bit adicional na configuração normal de cada caractere, de tal maneira que na
estação transmissora gera-se um conjunto de bits mais um bit adicional de paridade para cada
caractere transmitido. A soma dos nove bits deve manter sempre par ou sempre ímpar,
dependendo da técnica escolhida.
 CRC (Cyclic Redundancy Check): gera-se um caractere de verificação, adicionando bits de cada
posição dentro de cada byte do bloco de mensagem, divide todos os bits de um bloco por um
número binário predeterminado. O resto da divisão gera o caractere de verificação que será
transmitido. O receptor recalcula o caractere usando a mesma técnica, e os CRC são comparados.
 Código de Razão Constante: é a técnica na qual os caracteres são gerados de tal forma que a
razão entre o numero de 1 e o número de 0 que compõe o caractere seja constante.
1.8. Técnicas de Correção de Erros
 Correção Manual (Echoplexing): nela os dados enviados são devolvidos e comparados
individualmente.
 Correção por Solicitação: nela a informação é enviada com um caractere de controle de erro
(BCC), com isso o receptor analisa o BCC e informa ao transmissor se houve ou não erro,
solicitando ou não a retransmissão. Nela ACK (Acknowledgement) indica um bloco bem recebido e
NACK (Negative Acknowledgement) indica que o bloco recebido contém erros.
 Correção Automática: mesma que a anterior, mas sem retorno de confirmação.

2. Cabos e Conectores
2.1. Cabo Coaxial

40
CPC - Parte I - Conceitos Básicos

Este tipo de cabo é constituído pôr um núcleo de cobre sólido ou trançado cercado pôr um isolante, uma
blindagem de malha metálica (cobre ou luva de alumínio) e uma cobertura externa. Uma camada de folha
isolante e uma camada de malha metálica constitui de blindagem dupla.
Defini-se blindagem como a malha metálica (ou de outro material) entrelaçada ou retorcida que cerca
alguns tipos de cabos. A blindagem protege os dados transmitidos, absorvendo sinais eletrônicos dispersos,
chamados de ruídos, para que não cheguem ao cabo e distorçam os dados.
O núcleo de um cabo coaxial transporta os sinais eletrônicos que constituem os dados. Esse núcleo do
cabo pode ser sólido ou trançado. Se o núcleo for sólido, geralmente será de cobre. Este núcleo é cercado
por uma camada isolante que se separa da malha de fio. A malha de fio trançada funciona como um fio terra
e protege o núcleo contra ruídos elétricos e diafonia
Deve existir uma separação entre o núcleo condutor e a malha de fio. Se entrarem em contato, o cabo
estará sujeito a um curto-circuito e ruídos ou sinais dispersos da malha fluirão para o fio de cobre, destruindo
assim os dados.
O revestimento deste tipo de cabo é geralmente com materiais do tipo borracha, Teflon ou até mesmo
plástico, sendo que, esta camada é não-condutora.
O cabo coaxial é mais resistente à interferência e atenuação do que o cabo de par trançado.
A malha trançada protetora pode absorver os sinais eletrônicos ambientais, desse modo, estes não
afetam os dados que estão sendo enviados através do cabo de cobre interno. Pôr este motivo, o cabo coaxial
é uma boa opção para distâncias maiores e para suportar com segurança a taxa de dados mais altas com
equipamentos mais simples.

Tipos de Cabos Coaxiais


Há dois tipos de cabos coaxiais; o fino (thinnet) e o grosso (thicknet). O tipo a escolher fica por conta da
característica da rede a ser estruturada.
I. Thinnet (10Base2)– este tipo de cabo coaxial flexível tem cerca de 0,63 cm de espessura. Pôr ser
flexível e fácil de manipular, este tipo de cabo pode ser utilizado em quase todos os tipos de instalação de
rede. As redes que utilizam o thinnet conectam o cabo diretamente a uma placa adaptadora de rede do
computador.
O cabo thinnet pode transportar um sinal por até aproximadamente 185 metros, antes de o sinal
começar a sofrer atenuação. Os fabricantes chegaram a um consenso sobre algumas designações para tipos
de cabos diferentes. O thinnet está incluído em um grupo citado como a família RG-58 e tem uma impedância
de 50 ohm. A principal diferença da família RG-58 é o núcleo central de cobre. Este pode ser um núcleo de fio
trançado ou de cobre sólido.
II. Thicknet (10Base5) – o cabo thicknet é um cabo relativamente rígido, com cerca de 1,25 cm
de diâmetro. Às vezes é chamado de Ethernet padrão porque foi o primeiro tipo de cabo utilizado com a
arquitetura de rede bastante conhecida, Ethernet. O núcleo de cobre é mais espesso do que um núcleo
thinnet. Impedância de 93 ohm
A distância de transmissão de dados que este tipo de cabo pode atingir é proporcional à espessura do
núcleo de cobre. Isso significa que o thicknet pode transportar sinais para mais longe do que o thinnet. O
thicknet pode transportar um sinal por 500 metros, portanto, devido à capacidade dele para suportar
transferência de dados ao longo de maiores distâncias, algumas vezes ele é utilizado como backbone, para a
conexão de várias redes menores baseadas em thinnet.
Componentes de Conexão Coaxial
Tanto o thinnet como o thicknet utilizam o componente de conexão conhecido como conector naval
britânico (BNC, British Naval Connector) para a conexão entre o cabo e os conectores. Há vários
componentes importantes na família BNC, destacamos os seguintes:

41
CPC - Parte I - Conceitos Básicos
a) Cabo com conector BNC - este tipo é soldado ou ajustado à extremidade do cabo.
b) Conector T BNC – este conector une a placa de interface de rede do computador ao cabo da rede.
c) Conector Barrel BNC – este conector é utilizado para unir dois cabos para formar um cabo de
tamanho maior.
d) Terminador BNC – em cada extremidade do cabo de barramento, é colocado um terminador BNC
para absorver sinais ambientais. Sem os terminadores BNC, uma rede de barramentos não funcionará.

Tipo de Cabo Impedância Diâmetro Conector


RG-58 50 ohms 3/16"
BNC
A) RG – 58/U – núcleo de cobre
sólido
B) RG – 58 A/U – núcleo de fio
trançado
C) RG – 58 C/U – especificação
militar do RG-58 A/U
ARCNET – RG-62 93 ohms 3/16" BNC
RG-59/U 75 ohms 3/16" Utiliza um rabicho RG-62
na extremidade com BNC
2.2. Cabo de Par Trançado (10 Base T)

O cabo de par trançado é constituído por dois filamentos isolados de cobre. Os vários fios de par
trançado são agrupados e fechados em um revestimento protetor para formar um cabo. O número real de
pares em um cabo varia. A torção elimina o ruído elétrico dos pares vizinhos e de outras fontes, como
motores, relés e transformadores.
Atualmente, há dois tipos básicos de cabos de par trançado. O primeiro tipo chama-se Par Trançado
Não-Blindado (UTP – Unshield Twister-Pair – 100 ohm) e o segundo tipo se chama Par Trançado Blindado
(STP- Shielded Twister-Pair – 150 ohm)
O UTP é especificado no Commercial Building Wiring Standard (padrão de cabeamento de prédios
comerciais, da Assossiação de Insdustrias Eletrônicas e Assossiação de Industrias de Telecomunicações). A
EIA/TIA 568 utilizou o UTP para criar padrões que se aplicam a várias situações de construção e
cabeamento. Esses padrões incluem seis categorias de UTP.
 Categoria 1 – refere-se ao cabo telefônico UTP tradicional que pode transportar voz, mas não
dados. Utiliza conector RJ-11
 Categoria 2 – esta categoria certifica o cabo UTP para transmissões de dados de até 4 Mbps.
Não é recomendado para transmissão de dados

42
CPC - Parte I - Conceitos Básicos
 Categoria 3 – esta categoria certifica o cabo UTP de 100 ohms para transmissões de dados de
até 10 Mbps. 16 MHz.
 Categoria 4 – esta categoria certifica o cabo UTP de 100 ohms para transmissões de dados de
até 16 Mps. 20 MHz e pouco utilizado (Token Ring).
 Categoria 5 - esta categoria certifica o cabo UTP de 100 ohms para transmissões de dados de
até 100 Mps. 1000 MHz.
 Categoria 5e (enhanced – aperfeiçoado): mesmo padrão do anterior, mas suporta taxa de
até 155 Mbps.
 Categoria 6: suporta taxa de 255 Mbps

A maioria dos sistemas telefônicos utilizam um tipo de UTP. Na realidade, um motivo de o UTP ser tão
popular é o fato de muitos prédios serem cabeados previamente pôr sistemas telefônicos de par trançado.
Como parte de cabeamento prévio, geralmente é instalado um cabo UTP adicional, para atender as
necessidades futuras de cabeamento.
Como foi citado anteriormente, um problema potencial com todos os tipos de cabos é a diafonia. O UTP
é especialmente sucetível à diafonia. A blindagem é utilizada para reduzí-la.
O cabo par trançado utiliza os conectores do tipo RJ-45 (telefônico) para conectar-se a um computador.
Esse conector é semelhante ao conector telefônico RJ-11.Embora pareçam iguais as diferenças são nítidas, o
RJ-45 é maior e não se ajusta à tomada telefônica do RJ-11. O conector Rj-45 aloja oito conexões de cabos,
ao passo que RJ-11 permite apenas quatro.

2.3. Fibra Ótica (10BaseF)

Uma forma de transmissão moderna é a utilização de cabos de fibra óptica que transportam sinais de
dados digitais de forma de pulsos modulados de luz. Esse é um meio relativamente seguro de enviar dados
porque nenhum impulso elétrico é transportado no cabo de fibra óptica. Isso significa que não é possível
interceptar o cabo de fibra óptica e subtrair seus dados.
O cabo de fibra óptica é apropriado par transmissão de dados a grande velocidade e alta capacidade,
devido a ausência de atenuação e pureza do sinal.
Uma fibra óptica é constituída pôr um cilindro de vidro extremamente fino chamado de núcleo, cercado
pôr uma camada concêntrica de vidro, conhecida como revestimento. As fibras algumas vezes são feitas de
plástico. O plástico é mais fácil de instalar, mas não pode transportar os pulsos de luz para tão longe quanto o
vidro.
O transporte de dados via fibra óptica é unidirecional, sendo portanto, necessário a presença de dois
filamentos, com invólucros separados para que um envie e outro receba os pulsos de luz. Uma camada de
plástico de reforço circunda cada filamento de vidro e fibras kevlar proporcionam firmeza. As fibras kevlar do
conector óptico são colocadas entre dois cabos, que são revestidos de plástico.
As transmissões pôr cabo de fibra óptica não estão sujeitas à interferência elétrica e são
extremamente velozes (atualmente transmitindo cerca de 100 Mbps e 1000 Mbps, com taxas comprovadas
de até 200.000 Mbps) . Podem transportar um sinal, ou pulso de luz, pôr vários quilômetros.

43
CPC - Parte I - Conceitos Básicos

PADRÃO IEEE CARACTERÍSTICA


10BASE2 Sistema formado por cabo coaxial fino - opera a 10 Mbps, no modo banda-base
(significa que o meio é dedicado a transportar um serviço – sinais Ethernet),
tamanho do segmento de cabo no máximo de 185 m.
10BASE5 Sistema formado por cabo coaxial grosso - opera a 10 Mbps, no modo banda-base,
tamanho do segmento de cabo no máximo de 500 m.
10BROAD36 Sistema com cabo de banda larga, utilizado pelas televisões a cabo, taxa de 10
Mbps, cobrem uma área grande e o 36 indica a distância de 3.600 m.
10BASE-T Sistema com cabo de par trançado (dois pares de fios Categoria 3 - T), com taxa de
10 Mbps.
10BASE-F Sistema com fibra ótica, com taxa de 10 Mbps, podendo ser:
 10Base-FB => hub ativos
 10Base-FP => hub passivo
 10Base-FL => segmentos de link de fibra ótica.
100BASE-TX Sistema Fast Ethernet que opera a 100 Mbps, sendo formado por dois pares de
cabo de par trançado Categoria 5.
100BASE-FX Sistema Fast Ethernet que opera a 100 Mbps, sendo formado por cabo de fibra
ótica.
100BASE-T4 Sistema Fast Ethernet que opera a 100 Mbps, sendo formado por quatro pares de
cabo de par trançado Categoria 3.
100BASE-T2 Sistema Fast Ethernet que opera a 100 Mbps, sendo formado por dois pares de
cabo de par trançado Categoria 3. Não foi desenvolvida.
1000BASE-SX Sistema Gigabit Ethernet que opera a 1000 Mbps, através de fibra ótica com
tamanho de onda curta.
1000Base-LX Sistema Gigabit Ethernet que opera a 1000 Mbps, através de fibra ótica com
tamanho de onda longa.
1000BASE-T Sistema Gigabit Ethernet que opera a 1000 Mbps, através de cabo de par trançado
categoria 5 ou 6.

3. Equipamentos
3.1. Repetidor (Repeater)

É o dispositivo responsável por ampliar o tamanho máximo do cabeamento da rede. Este equipamento
recebe um sinal degenerado, regenera o mesmo e retransmite para o próximo ponto da rede.
Características:
 Funciona na camada Física do modelo OSI;
 Os pacotes e protocolos precisam ser os mesmos;
 Desconhece o endereço de destino;
 Não restringe o fluxo de tráfego problemático.
Regras de segmentação:
 Redes Ethernet: com cinco segmentos em série pode ter até quatro repetidores e até três segmentos de
cabo coaxial. Com quatro segmentos pode ter até três repetidores e não existe limite quanto ao uso do
cabo coaxial.
 Rede Fast Ethernet:
 Repetidor classe I: apenas a interligação entre dois segmentos, sendo usado par trançado
e o limite de cada segmento é de 100m.
 Repetidor classe II: aceita a ligação com mais um Classe II, tendo até 5 metros entre os

44
CPC - Parte I - Conceitos Básicos
dois segmentos.
 Rede Gigabit Ethernet: utilizam no máximo 1 repetidor.

3.2. Hub

Equipamento que permite uma conexão central para as estações de trabalho, servidores e periféricos.
Características:
 Funciona na camada Física do modelo OSI;
 Trabalham com arquitetura de meio físico compartilhado, ou seja, cada estação se comunica com o hub
um de cada vez, concorrendo pelo único barramento;
 É responsável por distribuir os sinais elétricos entre os vários equipamentos que compõe a rede, isolando
os problemas de cada uma das estações e garantindo maior nível de segurança e confiabilidade ao
sistema;

Tipos:
 Hub Ativo: além de funcionar como concentrador, são capazes de regenerarem e retransmitir sinais
(repetidores multiportais).
 Hub Passivo: são concentradores de cabos que não possuem qualquer tipo de alimentação elétrica, como
acontece com o ativo.
 Hubs Híbridos: aceitam cabeamentos diferentes.
 Hubs Inteligentes: aceitam qualquer tipo de monitoramento, feito via software, fornecendo relatórios
estatísticos de acesso e detectando falhas.
 Hubs Empilháveis (cascatável – stackable): são os que permitem a ampliação de seu número de portas.
Eles possuem porta especial que permite interligá-los a outros hubs.
 Hubs de Múltipla Velocidades: são os que podem operar com mais de uma velocidade.
Regras de segmentação:
 Redes Ethernet: não podem ter mais de cinco segmentos e quatro hubs entre os dois micros mais
afastados.
 Rede Fast Ethernet:
 Classe I: não permite ligação de hubs.
 Classe II: aceita a ligação de apena mais um Classe II.
 Rede Gigabit Ethernet: não aceitam que seus hubs sejam interligados entre si.

3.3. Pontes (bridges)

São dispositivos que interligam 2 segmentos de rede, que conhece o endereço de destino e permite
evitar o congestionamento, pois pode armazenar o dado quando o canal está congestionado para posterior
45
CPC - Parte I - Conceitos Básicos
retransmissão.
Funções:
 Ler o endereço do pacote e retransmiti-lo. Verifica o endereço de origem e destino de cada pacote,
preparando uma tabela de roteamento. Se o destino não constar na tabela, envia aos segmentos. Caso
contrário, envia para o segmento específico;
 Filtrar as mensagens, de modo que pacotes com erro não sejam retransmitidos;
 Armazenar os pacotes quando o tráfego for muito grande.
Características:
 Funciona na camada de Enlace do modelo OSI;
 Pode isolar computadores que possuam um volume muito grande de tráfego de dados;
 Pode interligar meios físicos diferentes;
 Não distingue protocolos diferentes;
 Manipula pacotes, não retransmitindo ruídos e erros;
 Não replica para outros segmentos os pacotes que tenham como destino o mesmo segmento da origem.

3.4. Switch

São pontes que possuem várias portas e que enviam quadros de dados somente para a porta de
destino.
Características:
 Funciona na camada de Enlace do modelo OSI;
 Ao contrário dos hubs, o switch oferece uma linha comutada dedicada a cada uma de suas conexões,
permitindo assim, que cada conexão se comunique à velocidade total da LAN.
Tipos:
 Stand alone: possui número fixo de portas.
 Switches empilháveis: permitem se conectar a outros switches.

3.5. Roteador (Router)

Equipamento que interliga duas redes, verificando qual o melhor caminho para enviar os dados. Pode
interligar redes com protocolos e topologias diferentes, mas não de tipos diferentes.
Características:
46
CPC - Parte I - Conceitos Básicos
 Funciona na camada de Rede do modelo OSI;
 Pode desviar conexões lentas ou que funcionem mal;
 Utiliza endereçamento IP (lógico), enquanto as pontes utilizam endereçamento físico (MAC);
 Desconhecendo a localização física de uma máquina, passa o pacote para outro roteador
hierarquicamente superior;
 Podem realizar a fragmentação dos pacotes, permitindo assim, trabalhar com pacotes de tamanho
diferentes.
Tipos:
 Estáticos: instalação e configuração são feitas manualmente de todas as rotas.
 Dinâmicos: configuração manual da primeira rota e depois verificação automática das redes e rotas
adicionais.
3.6. Gateway (Porta de Comunicação)

São dispositivos que tornam possível a comunicação entre arquiteturas e ambientes diferentes, ou
seja, entre qualquer tipo de rede. Estes equipamentos trabalham em todas as camadas do modelo OSI.

3.7. Multiplexador

Permite que vários equipamentos utilizem um único canal de comunicação, através da determinação
de um tempo de utilização do canal (TDM – Multiplexação por Divisão de Tempo) ou dividindo o canal em
canais menores, que utilizem freqüências diferentes (FDM – Multiplexação por divisão de freqüência).

4. Tipos de Rede
 LAN (Rede Local): Rede que ocupa uma pequena área geográfica, correspondente a poucos Km (até 10
Km), onde os equipamentos ficam próximos e normalmente utiliza-se comunicação via cabo.
 MAN (Rede Metropolitana): Rede que corresponde a uma metrópole, até 100 Km.
 WAN (Rede à Longa Distância): Rede para grandes distâncias, acima de 100 Km, onde a comunicação
normalmente será feita por satélite, ondas de rádio, microondas ou cabos de fibra optica.
 WLAN (Rede sem fio Local): Rede local do tipo Wireless – sem fio, onde a comunicação é feita via ondas
de rádio ou infravermelho.

47
CPC - Parte I - Conceitos Básicos
5. Topologias de Rede

 Topologia Barramento

Os computadores em uma rede de topologia de barramento comunicam-se endereçando os dados a um


computador em particular e inserindo estes dados no cabo sob forma de sinais eletrônicos. Para compreender
como os computadores se comunicam em um barramento, você precisa estar familiarizado com três
importantes conceitos.
Envio de sinal – os dados da rede sob a forma de sinais eletrônicos são enviados para todos os
computadores na rede; entretanto, as informações são aceitas apenas pelo computador cujo endereço
coincida com o endereço codificado no sinal original. Neste caso um computador por sua vez pode enviar
mensagens.
O número de computadores anexados ao barramento afeta o desempenho da rede pois dentro desta
topologia somente um computador por vez pode enviar seus dados. Quanto mais computadores em um
barramento, mais os computadores estarão esperando para inserir dados neste barramento e mais lenta
torna-se a rede.
A quantidade de atrasos na rede não está relacionada apenas ao número de computadores presentes
na rede, por isso não há uma medida padrão específica para o impacto. Os fatores que influenciam este
atraso, são:
 Capacidades de hardware dos computadores da rede;
 Número de vezes que os computadores na rede transmitem dados;
 Tipos de aplicativos sendo executados na rede;
 Tipos de cabos utilizados na rede;
 Distância entre os computadores na rede.
O barramento é uma topologia passiva. Os computadores em um barramento apenas executam os
dados que estão sendo enviados na rede. Eles não são responsáveis pôr mover dados de um computador
para outro. Se um computador falha, isso não afeta o resto da rede. Em uma topologia ativa, os
computadores regeneram os sinais e movem os dados ao longo da rede.
Repercussão do sinal - como os dados, ou sinais eletrônicos, são enviados a toda a rede, eles viajam
de uma extremidade a outra do cabo. Se o sinal tiver a permissão para prosseguir sem interrupção,
continuará repercutindo para frente e para trás ao longo do cabo, impedindo que os outros computadores
enviem sinais. Portanto, o sinal deve ser interrompido depois que tiver oportunidade de alcançar o endereço
de destino adequado.
Terminador – um componente chamado terminador (que serve para impedir que o sinal repercuta) é
colocado em cada extremidade do cabo para absorver sinais livres. A absorção do sinal libera o cabo que os
outros computadores possam enviar dados.
Cada extremidade do cabo da rede deve ser conectada a algo. Por exemplo, uma extremidade poderia
ser conectada a um computador ou conector para aumentar o tamanho do cabo. As extremidades de cabo
abertas – extremidades não conectadas a algo – devem ser terminadas para evitar a repercussão do sinal.
Se o cabo for fisicamente cortado em dois ou se uma extremidade for desconectada, ocorrerá uma
interrupção no cabo e consequentemente, como as extremidades não possuirão um terminador, o sinal será
repercutido e toda a atividade de rede será interrompida.
Mesmo assim, os computadores ainda poderão funcionar como computadores autônomos (stand
alone), mas enquanto o segmento não for reparado, estes não poderão se comunicar uns com os outros.
Com a relação à expansão da rede, a topologia do tipo de barramento poderá ser aumentada de duas
maneiras diferentes porém tomando alguns cuidados básicos com a transmissão. As maneiras de se
aumentar a rede são:

48
CPC - Parte I - Conceitos Básicos
 Utilizando o componente chamado conector barrel que pode se conectar dois cabos para
formar um maior, entretanto não é indicado utilizar este método, pois os conectores enfraquecem o sinal e
devem ser aplicados com moderação (indica-se trocar o cabo pequeno por um maior formando uma conexão
contínua).
 Utilizando um dispositivo chamado repetidor que amplifica o sinal antes de enviá-lo ao seu
destino melhorando a comunicação e tornando-a mais confiável.

 Topologia Estrela

A topologia de estrela oferece uma conexão de computadores por meio de segmentos de cabo a um
componente centralizado chamado hub. Os sinais são transmitidos a partir do computador que está enviando
através do hub até todos os computadores na rede. Essa topologia iniciou-se nos primeiros momentos da
computação, com os computadores conectados a um computador mainframe (grande porte) centralizado.
A rede de estrela oferece recursos e gerenciamento centralizados. Entretanto, como cada computador
está conectado a um ponto central, esta topologia exige uma grande quantidade de cabos em uma instalação
grande de rede. Além disso se o ponto central falhar, a rede inteira cai.
Caso um computador pertencente a uma rede de topologia estrela falhar ou o cabo que o conecta ao
hub se partir, somente este não poderá enviar dados ou receber mensagens mas o restante da rede continua
funcionando normalmente.

 Topologia Anel

A topologia em forma de anel permite a conexão de vários computadores em círculo através de um


cabo que não possui extremidades como encontramos na topologia de barramento. Neste tipo de topologia,
os sinais são transmitidos em círculo, em uma determinada direção (sentido horário), passando por todos os

49
CPC - Parte I - Conceitos Básicos
computadores. Ao contrário da topologia de barramento passiva, cada computador atua como repetidor para
amplificar o sinal e enviá-lo para o seguinte. Como o sinal passa através de todos os computadores, a falha
em um computador faz com que a rede seja totalmente paralisada.
Topologias Pontos positivos Pontos negativos
Topologia Estrela . É mais tolerante a falhas . Custo de instalação maior porque
. Fácil de adicionar usuários a recebe mais cabos.
rede
. Monitoramento centralizado
Topologia Anel (Token Ring) . Razoavelmente fácil de . Se uma estação para de funcionar
instalar. todas param.
. Requer menos cabos . Os problemas são difíceis de isolar.
. Desempenho uniforme
Topologia barramento . Simples e fácil de instalar . A rede fica mais lenta em períodos de
. Requer menos cabos uso intenso.
. Fácil de entender . Os problemas são difíceis de isolar.

6. Tecnologias de Rede
a) Ethernet (IEEE 802.3)
É uma tecnologia de rede LAN, que trabalha com taxa de 10 Mbps, utilizando topologia barramento
(Coaxial) ou Estrela (Par trançado com HUB). É a mais conhecida dentre as atualmente utilizadas, e está no
mercado há mais tempo do que as outras tecnologias de rede. A redução dos preços e uma relativa alta
velocidade de transmissão de dados fomentaram a ampla utilização da Ethernet.
Neste tipo de rede, cada PC “ouve” o tráfego na rede e se não ouvir nada, eles transmitem as
informações. Se dois clientes transmitirem informações ao mesmo tempo, eles são alertados sobre à colisão ,
param a transmissão e esperam um período aleatório para cada um antes de tentar novamente, este método
é conhecido como Carrier Sense Multiple Access with Collision Detection (CSMA/CD) .

b) Token Ring (IEEE 802.5)


É a tecnologia de rede LAN, que utiliza taxa de 10 Mbps e topolia em anel. O método de acesso de
token ring (passagem de permissão) utiliza um método circular para determinar qual estação tem permissão
para transmitir. O token ring opera em topologia em anel e garante que todas as estações da rede tenham
chance de transmitir dados. Ele alcança esse objetivo utilizando um padrão especial de bit conhecido como
token ou permissão. Em uma rede token ring, seu computador pacientemente monitora a rede até que ele
veja um padrão especial de bits denominado permissão. Ao ver a transmissão ele envia um pacote de dados.
Este pacote de dados viaja pelo anel e o destinatário recebe na passagem. Quando o pacote retornar ao
transmissor ele passa o token para a próxima estação. Este processo se repete infinitamente. Os tempos
necessários são medidos em frações de segundos.

c) FDDI
É a rede LAN token ring de fibra optica de alto desempenho, que funciona a 100 Mbps. Utiliza um
sistema de duplo anel.

d) Fast Ethernet (IEEE 802.3u)


É uma tecnologia de rede que foi criada para resolver o alto custo da FDDI, podendo utilizar os seguintes
cabos: 100 Base – T4 e 100 Base – TX (cabos de par trançado – 100 m) ou 100 Base FL (fibra).

7. Modelo OSI
Para facilitar o processo de padronização e obter interconectividade entre máquinas de diferentes
fabricantes, a Organização Internacional de Padronização (ISO - International Standards Organization)
aprovou, no início dos anos 80, um modelo de referência para permitir a comunicação entre máquinas
heterogêneas, denominado OSI (Open Systems Interconnection). Esse modelo serve de base para qualquer
tipo de rede,seja de curta, média ou longa distância.
O modelo OSI é uma arquitetura que divide a comunicação de rede em sete níveis (camadas). Cada
nível engloba diferentes atividades, equipamentos e protocolos de rede.
A disposição em camadas especifica funções e serviços diferentes em camadas diferentes. Cada
camada do OSI tem funções de rede bem definidas e as funções de cada camada comunica-se e trabalham
com as funções das camadas imediatamente superiores e inferiores. Pôr exemplo, a camada de Sessão deve
comunicar e trabalhar com as camadas de Apresentação e Transporte.
50
CPC - Parte I - Conceitos Básicos
Entre cada nível existe uma interface. Essa interface permite que dois níveis quaisquer troquem
informações. A interface também define quais primitivas, operações e serviços o nível inferior oferece ao
imediatamente superior.
Cada nível é independente entre si e executa somente suas funções, sem se preocupar com as funções
dos outros níveis. Assim, por exemplo, o nível 2 preocupa-se em fazer uma transmissão livre de erros, não
importando se o nível físico esteja utilizando par trançado, cabo coaxial ou fibra ótica.
7.1 Nível 1: físico
O nível físico tem a função de transmitir uma seqüência de bits através de um canal de comunicação.
As funções típicas dos protocolos deste nível são para fazer com que um bit "1" transmitido por uma estação
seja entendido pelo receptor como bit "1" e não como bit "0". Assim, este nível trabalha basicamente com as
características mecânicas e elétricas do meio físico, como por exemplo:
- Número de volts que devem representar os níveis lógicos "1" e "0";
- Velocidade máxima da transmissão;
- Transmissão simplex, half-duplex ou full-duplex;
- Número de pinos do conector e utilidade de cada um;
- Diâmetro dos condutores.
Os protocolos deste nível são os que realizam a codificação/decodificação de símbolos e caracteres em
sinais elétricos lançados no meio físico, que fica logo abaixo dessa camada.
7.2 Nível 2: enlace
O principal objetivo do nível de enlace é receber/transmitir uma seqüência de bits do/para o nível físico
e transformá-los em uma linha que esteja livre de erros de transmissão, a fim de que essa informação seja
utilizada pelo nível de rede.
O nível de enlace está dividido em dois sub-níveis: o superior é o controle lógico do enlace (LLC -
Logical Link Control), e o inferior é o controle de acesso ao meio (MAC - Medium Access Control).

7.2.1 Subnível LLC


O protocolo LLC pode ser usado sobre todos os protocolos IEEE do subnível MAC, como por exemplo o
IEEE 802.3 (Ethernet), IEEE 802.4 (Token Bus) e IEEE 802.5 (Token Ring). Ele oculta as diferenças entre os
protocolos do subnível MAC.
Usa-se o LLC quando é necessário controle de fluxo ou comunicação confiável.
Ele oferece três opções de transmissão: serviço de datagrama não-confiável, serviço de datagrama com
confirmação e serviço orientado à conexão confiável.
O LLC consegue isso dividindo a mensagem a transmitir em quadros com algumas centenas de bytes
de dados e alguns bytes de controle (como CRC, por exemplo). Enquanto transmite seqüencialmente os
quadros de dados, o transmissor deve tratar os quadros de reconhecimento (ACK), que são enviados pelo
receptor a fim de indicar se a transmissão ocorreu com ou sem erros. Caso algum quadro não tenha chegado
corretamente, o transmissor deve retransmiti-lo, e o receptor deve descartar o quadro errado.
Um ruído mais forte na linha pode destruir completamente um quadro. Nesse caso, os protocolos da
camada de enlace devem retransmitir essa informação.
Entretanto, múltiplas retransmissões do mesmo quadro podem fazer com que existam quadros
duplicados. Um quadro duplicado pode acontecer se, por exemplo, o ACK do receptor foi destruído. É tarefa
do LLC tratar e resolver problemas causados por quadros danificados, perdidos e duplicados. Existem várias
classes de serviço neste nível, cada uma com seu fator de qualidade.
Outra função do nível de enlace LLC é controle de fluxo, ou seja, o controle de um transmissor rápido
para que não inunde de dados um receptor mais lento. Algum mecanismo regulador de tráfego deve ser
empregado para deixar o transmissor saber quanto espaço em buffer tem no receptor naquele momento.
Freqüentemente, o controle de fluxo e de erro é integrado, simplificando o protocolo.
Para entender quando é necessário controle de fluxo, suponha um transmissor que pode enviar dados a
1Mbps, e um receptor que pode receber dados somente a 100Kbps. Evidentemente, algum controle deve
haver para que o receptor não seja obrigado a descartar dados.
Outra complicação que deve ser tratada em nível de enlace é quando a linha for utilizada para transmitir
tráfego em ambas direções (de A para B e de B para A).
Normalmente, uma comunicação envolve a transmissão do pacote de dados e o ACK (acknowledge)
enviado de volta pela estação receptora, indicando que os dados chegaram sem erros. Entretanto, o
problema é que os quadros de ACK competem pelo meio físico da mesma forma que os quadros de dados,

51
CPC - Parte I - Conceitos Básicos
prejudicando o desempenho do sistema. Para eliminar esse problema, em alguns protocolos utiliza-se o
conceito de piggybacking, onde os bits de ACK que devem ser enviados em resposta ao quadro de dados
transmitidos pela estação A vem junto com o quadro de dados que a estação B quer transmitir para a estação
A.
Resumindo, as principais funções do nível de enlace são as seguintes:
- Entregar ao nível de rede os dados livres de erros de transmissão;
- Retransmissão de quadros errados;
- Controle de fluxo;
- Tratamento de quadros duplicados, perdidos e danificados.
7.2.2 Subnível MAC
O sub-nível MAC possui alguns protocolos importantes, como o IEEE 802.3 (Ethernet), IEEE 802.4
(Token Bus) e IEEE 802.5 (Token Ring).
O protocolo de nível superior pode usar ou não o subnível LLC, dependendo da confiabilidade esperada
para esse nível. Em intranets se utiliza TCP/IP sobre MAC direto.
Esse subnível fica muito próximo ao nível físico, não existindo confirmações de mensagens (ACK) nem
controle de fluxo. Caso a mensagem chegue errada no receptor (detectado através do CRC), ele
simplesmente descarta o quadro.
As redes baseadas em TCP/IP que utilizam o Ethernet / Token Ring em nível 2 funcionam dessa forma,
ou seja, se dá erro num pacote ele é descartado. As confirmações e verificações ficam para o nível mais alto
(TCP).
7.3 Nível 3: rede
O nível de rede tem a função de controlar a operação da rede de um modo geral. O principal aspecto é
executar o roteamento dos pacotes entre fonte e destino, principalmente quando existem caminhos diferentes
para conectar entre si dois nós da rede. Em redes de longa distância é comum que a mensagem chegue do
nó fonte ao nó destino passando por diversos nós intermediários no meio do caminho, e é tarefa do nível de
rede escolher o melhor caminho para essa mensagem.
A escolha da melhor rota pode ser baseada em tabelas estáticas, que são configuradas na criação da
rede e são raramente modificadas, pode também ser determinada no início de cada conversação, ou ser
altamente dinâmica, sendo determinada a cada novo pacote, a fim de refletir exatamente a carga da rede
naquele instante. Na prática, os roteadores atualizam suas tabelas de roteamento de tempos em tempos (30
segundos, no RIP).
Se muitos pacotes estão sendo transmitidos através dos mesmos caminhos, eles vão diminuir o
desempenho global da rede, formando gargalos. O controle de tais congestionamentos é tarefa da camada de
rede.
Normalmente, a transmissão de mensagens em redes de longa distância é cobrada pela central pública
que administra o serviço, e a contabilização é feita pela camada de rede, que deve contar o número de
pacotes ou bytes que o usuário utilizou a fim de tarifar o sujeito.
Resumindo, as principais funções do nível de rede são as seguintes:
- Roteamento dos pacotes entre fonte e destino, mesmo que tenha que passar por diversos nós
intermediários durante o percurso;
- Controle de congestionamento;
- Contabilização do número de pacotes ou bytes utilizados pelo usuário, para fins de tarifação;
Com relação às redes broadcast (do tipo Ethernet), onde a informação é escutada por todas outras
estações, o roteamento não é necessário dentro da subrede, fazendo com que a camada de rede seja muito
simples. Caso não seja tarefa da subrede, o pacote é enviado ao roteador default.
7.4 Nível 4: transporte
O nível de transporte inclui funções relacionadas com conexões entre a máquina fonte e máquina
destino, segmentando os dados em unidades de tamanho apropriado para utilização pelo nível de rede.
Sob condições normais, o nível de transporte cria uma conexão distinta para cada conexão de
transporte requisitada pelo nível superior. Se a conexão de transporte requisitada necessita uma alta taxa de
transmissão de dados, este nível pode criar múltiplas conexões de rede, dividindo os dados através da rede
para aumentar a velocidade de transmissão. Por outro lado, se é caro manter uma conexão de rede, a
camada de transporte pode multiplexar várias conexões de transporte na mesma conexão de rede, a fim de
reduzir custos. Em ambos os casos, a camada de transporte deixa essa multiplexação transparente ao nível
superior.

52
CPC - Parte I - Conceitos Básicos
O nível de transporte é o primeiro que trabalha com conexões lógicas fim a fim, ou seja, um programa
na máquina fonte conversa com um programa similar na máquina destino, diferentemente dos níveis
anteriores, que conversavam somente com o nó vizinho. Vale ressaltar que a conexão criada pelo nível de
transporte é uma conexão lógica, e os dados são transmitidos somente pelo meio físico, através do nível 1 do
modelo. Assim, os dados devem descer nível a nível até atingir o nível 1, para então serem transmitidos à
máquina remota.
Resumindo, as principais funções do nível de transporte são as seguintes:
- Criar conexões para cada requisição vinda do nível superior;
- Multiplexar as várias requisições vindas da camada superior em uma única conexão de rede;
- Dividir as mensagens em tamanhos menores, a fim de que possam ser tratadas pelo nível de rede;
- Estabelecer e terminar conexões através da rede.
7.5 Nível 5: sessão
A função do nível 5 do modelo OSI é administrar e sincronizar diálogos entre dois processos de
aplicação. Este nível oferece dois tipos principais de diálogo: half-duplex e full-duplex.
Uma sessão permite transporte de dados de uma maneira mais refinada que o nível de transporte em
determinadas aplicações. Uma sessão pode ser aberta entre duas estações a fim de permitir a um usuário se
logar em um sistema remoto ou transferir um arquivo entre essas estações. Os protocolos desse nível tratam
de sincronizações (checkpoints) na transferência de arquivos.
7.6 Nível 6: apresentação
A função do nível 6 é assegurar que a informação seja transmitida de tal forma que possa ser entendida
e usada pelo receptor. Dessa forma, este nível pode modificar a sintaxe da mensagem, mas preservando sua
semântica. Por exemplo, uma aplicação pode gerar uma mensagem em ASCII mesmo que a estação
interlocutora utilize outra forma de codificação (como EBCDIC). A tradução entre os dois formatos é feita
neste nível.
O nível de apresentação também é responsável por outros aspectos da representação dos dados, como
criptografia e compressão de dados.
7.7 Nível 7: aplicação
O sétimo nível, o de aplicação, fornece ao usuário uma interface que permite acesso a diversos serviços
de aplicação, convertendo as diferenças entre diferentes fabricantes para um denominador comum.
Por exemplo, em uma transferência de arquivos entre máquinas de diferentes fabricantes, podem haver
convenções de nomes diferentes (DOS tem uma limitação de somente 8 caracteres para o nome de arquivo,
UNIX não), formas diferentes de representar as linhas, e assim por diante. Transferir um arquivo entre os dois
sistemas requer uma forma de trabalhar com essas incompatibilidades, e essa é a função do nível de
aplicação.
O nível de aplicação sem dúvida nenhuma é o nível que possui o maior número de protocolos
existentes, devido ao fato de estar mais perto do usuário, e os usuários possuírem necessidades diferentes.
Algumas aplicações deste nível são transferência de arquivos, correio eletrônico e terminais virtuais, entre
outras.

8. Tecnologia ATM
A tecnologia ATM é uma técnica de transferência baseada em pacotes de tamanho fixo denominados
células e estruturado segundo conexões de canais e rotas virtuais que podem ser multiplexadas de forma
dinâmica em um mesmo meio físico.
Capaz de suportar diferentes tipos de serviços para atender a diferentes tipos de tráfego
(voz,dados,imagens e vídeo) em um mesmo enlace físico e a altas velocidades de transmissão. Foi projetada
para operar sobre os modernos sistemas de telecomunicações como o SDH/SONET, além disso permite uma
integração LAN/WAN sem problemas de interoperabilidade.
8.1. Arquitetura ISDN
Este modelo apresenta uma estrutura em três planos:
- O plano usuário: responsável pela transferência de informações de usuário
- O plano de controle: responsável pelas funções e protocolos de sinalização entre os diversos objetos
gerenciados.

53
CPC - Parte I - Conceitos Básicos
- O plano de gerenciamento: responsável pela manutenção da rede e responsável pelo
estabelecimento das conexões e pelo gerenciamento de todos os níveis (incluindo o plano de usuário e
controle)
O plano usuário é divido em :
- Camada física: responsável pelo envio e retirada de células ATM para o meio físico
- Camada ATM: responsável pela geração e roteamento das células ATM
- Camada de adaptação: responsável pela comunicação entre as informações das camadas superiores
e a tecnologia ATM

8.2. Hierarquia de transporte


A camada ATM e a camada Física constituem a hierarquia de transporte ATM, enquanto a camada de
Adaptação (AAL) e as camadas superiores constituem a hierarquia de aplicação.
Os protocolos da hierarquia de transporte se comunicam entre os equipamentos terminais de usuários
(Terminal Equipament - TE) e o nó da rede através da interface UNI (User Network Interface) ou entre dois
nós através da interface NNI (Network Network Interface). Os protocolos da hierarquia de aplicação se
estabelecem fim a fim entre os equipamentos de usuários (TE). Desta forma a interface UNI corresponde à
interface entre uma estação terminal (TE) e a rede, a interface NNI corresponde à interface entre dois
equipamentos de rede

8.3. Camadas ATM

A camada física é dividida em dois subníveis: Transmission Convergence (TC) e Physical Medium (PM)
O subnível transmission Convegence tem como funções:
- Geração e recuperação de frames de transmissão
- Empacotamento de células ATM em frames
- Delimitação de células
- Geração e recuperação do byte HEC das células ATM
- Controle Genérico de Fluxo (GFC) da UNI
O subnível Physical Medium tem funções associadas a métodos de acesso a mídia e temporizações.
Na camada ATM, responsável pelos serviços e funções que constituem a rede de transporte ATM,
encontramos três elementos básicos: a célula ATM, a rota virtual (Virtual Path - VP) e o canal virtual (Virtual
Channel - VC).
As funções desta camada, especificadas pela recomendação I.150, incluem:

54
CPC - Parte I - Conceitos Básicos
- Controle de fluxo genérico
- Multiplexação / demultiplexação de células
- Tratamento dos cabeçalhos das células
- Roteamento das células baseadas nas informações do cabeçalho.
A camada de Adaptação é dividida em dois subníveis: Segmentation and Reassembly Sublayer(SAR) e
Convergence Sublayer(CS)
- O subnível SAR contém funções de reagrupamento e segmentação das informações da camada
superior em células ATM
- O subnível CS contém funções de agrupamento das informações da camada superior.

8.4. Formato da Célula ATM


A célula ATM cotem 53 bytes sendo que 48 bytes constituem o campo de informação de usuário e 5
bytes fazem parte do cabeçalho. As células são comutadas na rede com base na informação de roteamento
que está dentro das células.

- GFC: Generic Flow Control


- VPI: Virtual Path Identifier
- VCI: Virtual Channel Identifier
- PTI: Payload Type Identifier
- CLP: Cell Loss Priority
- HEC: Header Error Correction
Identificadores VCI (Virtual Channel Identifier) e VPI (Virtual Path Identifier) são os campos necessários
para que os comutadores possam efetuar a comutação das células.O encaminhamento das células ocorre a
partir da informação contida nos campos de VPI e VCI.
O campo do Payload Type Identifier - PTI identifica o tipo de informação contida na célula e se a célula
passou por elementos congestionados durante o trajeto.
O campo Cell Loss Priority - CLP define um mecanismo de prioridade no descarte de células pelos
comutadores. As células com o bit de CLP setado são células de baixa prioridade e poderão ser descartadas
pela rede, enquanto que células de alta prioridade, ou seja, com o bit CLP não setado não serão descartadas
a medida do possível.
O campo Header Error Correction - HEC é utilizado para a verificação de erros de transmissão. O HEC
permite à camada física a verificação da integridade do cabeçalho através da detecção e correção de erro de
cabeçalho e delimitação de células.
O campo Generic Flow Control - GFC é usado em funções de controle de tráfego entre estação
terminal e rede, aparecendo somente no cabeçalho das células UNI.
55
CPC - Parte I - Conceitos Básicos

8.5. Comutação ATM


A comutação na camada ATM ocorre em dois níveis: canal virtual (VC) e rota virtual(VP). O processo
de estabelecimento de uma rota virtual (VP) decorre do processo de estabelecimento de uma conexão de
canal virtual (VC) individual.

Uma conexão virtual (Virtual Channel Conection -VCC) fornece um caminho de transferência de células
ATM fim a fim entre usuários. A cada ponto de terminação é associado um único identificador de conexão
(Virtual Channel Identifier - VCI). Um VCC, por sua vez, consiste de uma concatenação de um ou mais canais
virtuais VCLs (Virtual Channel Link), sendo que o VCI é constante dentro de um VCL, mudando apenas nos
pontos de comutação.
As células chegam a um comutador através de uma VCL, este deve saber encaminhar a célula através
dos campos VCI e VPI contidos no cabeçalho para encaminhar a célula à próxima VCL do caminho
estabelecido por uma VCC. Em uma rede ATM as células são transportadas através de conexões utilizando-
se uma técnica chamada label switching (comutação por rótulo), onde é colocado um rótulo no cabeçalho de
cada célula, desta forma, o pacote não precisa conter de forma detalhada seu endereço de destino. Com esta
técnica uma unidade de comutação recebe em uma de suas portas uma célula contento de um rótulo de
roteamento. Usando uma tabela de roteamento a unidade de comutação relaciona a porta e o rótulo de
chegada com a porta e o rótulo de saída. O comutador substitui o rótulo de chegada por um novo e passa a
célula adiante, sendo este processo feito repetitivamente até chegar ao seu destino final.
Devido ao grande volume de processamento nos comutadores causado pela associação de entradas a
cada VCC nas tabelas de roteamento, utiliza-se a técnica na qual várias VCCs sejam roteadas pelos mesmos
caminhos em determinadas partes da rede. Desta forma a conexão de uma rota virtual ( Virtual Path
Conection - VPC) é um conjunto de VCCs comutadas em conjunto, diminuindo o volume de processamento
nos comutadores. O VPC fornece um caminho para todos os VCLs que partilham dois pontos finais VPC que
podem ser entre um ponto final de usuário e um comutador VC ou entre dois comutadores VC. Logo, uma
VPC consiste de uma concatenação de VPLs (Virtual Path Link), sendo que o VPI (Virtual Path Identifier) é
constante dentro de um VPL.
Então, o campo VPI (identificador de caminho virtual) identifica o VCL em cada comutador e o campo
VCI (identificador de canal virtual) identifica de qual conexão dentro da VPL está célula faz parte.

8.6. Plano de Sinalização e Controle


O plano de sinalização e controle é responsável pela sinalização necessária para a ativação,
supervisão e desativação de conexões ATM ou conjunto de conexões ATM entre dois ou mais participantes.
Os serviços em ATM podem ser classificados a partir de uma lista de parâmetros de requisitos de qualidade
de serviço (quality of service - QoS), onde criamos um modelo para os diversos serviços. Segue abaixo
algumas das funções de sinalização:
- Controle de admissão de conexões controlando os recursos de rede e garantindo a QoS especificada.
- Policiamento para que se respeite o acordo realizado no estabelecimeto da conexão
- Controle de congestionamento

8.7. Plano de Gerenciamento


56
CPC - Parte I - Conceitos Básicos
As funções OAM (Operating Administration and Managment ) da camada ATM cobrem: configuração,
detecção de falhas, taxação de serviços, segurança e gerenciamento e supervisão de performance. A
estrutura geral de uma PDU-OAM é formada por uma única célula ATM, através da qual são executadas
funções de OAM e de gerenciamento.
As funções de gerenciamento cobrem áreas como: gerenciamento de falhas, gerenciamento de
performance e ativação e desativação de entidades. Em relação às funções de OAM, atualmente estão
definidas 5 funções:
- monitoramento de performance
- detecção de falhas e defeitos
- proteção de sistema
- informação sobre performance ou falha
- localização de falhas.

8.8. Descritores de serviços ATM


Os serviços em ATM podem ser classificados a partir de uma lista de parâmetros de requisitos de
qualidade de serviço (quality of service - QoS), onde criamos um modelo para os diversos serviços. Em
termos de tráfego, um determinado serviço pode ser caracterizado por um conjunto genérico de parâmetros
de tráfego (QoS) também chamado de descritor de tráfego de fonte (source taffic descriptor) que corresponde
a um modelo genérico de tráfego ATM deste serviço.
A caracterização de uma conexão ATM segue dois enfoques: um conjunto de parâmetros QoS
específicos chamados de ATM traffic descriptor ou a caracterização deste serviço como integrante de uma
determinada categoria de suporte de transporte deste serviço.
Desta forma o source traffic descriptor é uma descrição do serviço do ponto de vista do usuário e o
ATM traffic descriptor é uma descrição da conexão do ponto de vista do plano de gerenciamento de rede.

8.9. QoS (Quality of Service)


Os parâmetros de QoS podem ser divididas em duas classes: os parâmetros de controle de chamada e
os parâmetros associados à transferência de informação em redes de pacotes.
Existem três métricas que descrevem o perfil do QoS de uma conexão ATM chamados de QoS-NP
(QoS network parameters), ou descritor de qualidade de serviço:
- Cell Loss Rate (CLR), ou taxa de perda de células
- Cell Transfer Delay (CTD) ou atraso de tranfer6encia
- Cell Delay Variation (CDV), ou variação média do atraso de células
As células transportadas pela rede segundo os parâmetros QoS-NP necessitam de uma negociação
com o usuário relacionados com a maneira como o usuário deverá entregar as células à rede. Este outro
conjunto de parâmetros de QoS constituem os QoS-UP (QoS user parameters) e caracterizam o tráfego a ser
fornecido pelo usuário.O conjunto dos parâmetros de QoS-UP é formado por:
- Peak Cell Rate (PCR), taxa instantânea máxima de transmissão do usuário
- Cell delay variation tolerance (CDVT) tolerância máxima do CDV
- Sustainable Cell Rate (SCR), taxa média de células sobre um intervalo de tempo grande
- Maximum Burst Size (MBS), número máximo de células, que podem ser enviados na taxa de pico
(PCR).
- Mínimum Cell Rate (MCR), a taxa mínima desejada pelo usuário.
Desta forma a rede garante o serviço dentro dos QoS-NP somente se o fluxo de células do usuário
estiver de acordo com os QoS-UP. Estes QoS-Up foram negociados no estabelecimento da conexão.Existem
parâmetros que estão relacionados com a qualidade da rede, porém não são negociáveis.
Descritor de tráfego ATM (traffic descriptor)
O descritor de tráfego de conexão constitui um conjunto de parâmetros definidos pelo usuário (QoS-
UP) no sentido de fornecer ao gerenciamento de rede as características de tráfego de uma conexão.
O descritor de tráfego fonte é utilizado durante a fase de estabelecimento de conexão para especificar
as características de tráfego da conexão solicitada pela fonte. Desta forma,no momento da conexão deverá
ser necessário oferecer condições para que o contrato de tráfego estabelecido entre o usuário e a rede seja
feito em termos vantajosos para ambos. O conformador de tráfego (traffic shapping) é responsável por esta
tarefa, adaptando o fluxo de informação para um suporte de transporte ATM (categoria de serviço).
Categorias de serviço ATM ( ATM Transport Capability - ATC)
Uma categoria de serviço tem como objetivo traduzir um modelo de serviço (uma combinação de
caracterização de tráfego e requisitos de QoS) em um conjunto de procedimentos de caracterização de

57
CPC - Parte I - Conceitos Básicos
tráfego e gerenciamento de recursos, que sejam adequados para um tipo de serviço, permitindo a alocação
eficiente de recursos pela rede.
Podemos classificar os ATCs em duas categorias do ponto de vista do controle exercido sobre os
parâmetros de tráfego pelo ATC: os ATCs do tipo NCTP (non controlable traffic parameters) ou de parâmetros
estáticos, e os ATCs tipo CTP (controlled traffic parameters) ou de parâmetros dinâmicos.
- Categoria NCTP ou de parâmetros estáticos: os parâmetros de tráfego nestas ATCs são definidos no
momento do estabelecimento da conexão e não há alteração dos mesmos.
- Categoria CTP ou parâmetros dinâmicos: os parâmetros de tráfego são modificados dinamicamente
durante a conexão.

9. Frame Relay
Os protocolos e produtos X.25 em que se baseiam as redes públicas de dados já foram amplamente
testados, sendo estáveis e seguros. Por isso interessante registrar o grande interesse despertado por uma
tecnologia alternativa denominada frame relay. De proposição teórica, em 1988, o frame relay se transformou
num padrão ANSI e CCITT; em constante evolução, que ameaça a supremacia do X.25.
Antes do advento das redes de comutação de pacotes, apenas as corporações com enorme poder de
investimento podiam realizar comunicação de dados em WANs. A falta de um serviço na rede publica,
obrigava a contratação de linhas privadas entre todos os pontos remotos, ou o uso de linhas discadas para
transmissões de menor volume. As primeiras redes de comutação de pacotes foram baseadas no protocolo
X.25, como é o caso da Renpac, da Embratel. Entretanto, com a proliferação das redes locais e a melhoria da
infra-estrutura das carriers, o protocolo Frame Relay consolidou-se como uma opção mais adequada para
usuários e prestadores de serviços.
Na nuvem Frame Relay são estabelecidos os PVCs (permanente virtual circuit, ou circuito virtual
permanente), vistos pelas pontas como canais dedicados da rede. Além da amortização de custos, as
características de redes virtuais, pois a interconexão entre os pontos pode ser rapidamente configurada pela
operadora da nuvem.
Em termos técnicos, o Frame Relay não é um desdobramento do X.25, embora haja uma interseção de
mercados.
Frame Relay foi originalmente concebido para dados, mas a velocidade dos Links e as características
de aplicações tornaram interessante economicamente fazer a voz pegar uma carona no tráfego de Lan.

9.1. Serviço de Frame Relay


 Multiplexado
 Não confiável
 Sem controle de fluxo
 Garantia de ordem de entrega
 Confiabilidade das redes atuais
Frame é um pacote transnitido através de uma linha serial. Otermo é derivado de um protocolo
orientado a caracteres especiais no inicio e fim de frames na transmissão de pacotes.
Frame Relay é uma tecnologia de chaveamento baseada em pacotes que foi elaborada para
velocidade. Foi desenvolvida para solucionar problemas de comunicação, que outros protocolos não
resolveram, com eficiência das larguras de banda amplas para tráfego por picos("explosivos"), com
processamento de protocolo mais baixo e velocidade mais altas.
Em essência, frame relay é um serviço multiplexado não confiável. Não oferece confirmação de entrega,
o que torna possível que frames sejam perdidos ou duplicados pela rede. Além disso, não possui mecanismo
para controle de fluxo através da interface entre usuário e rede. No entanto, o serviço de frame relay
assegura que frames sejam entregues na ordem em que são transmitidos.
Serviços de frame relay estão amplamente disponíveis no momento. A confiabilidade inerente às redes
atuais, além da existência de camadas superiores de software que podem fornecer confiabilidade fim-a-fim,
são fatos que tornam frame relay um grande candidato ao uso generalizado em redes de computadores.
O conceito de frame relay retira parte das responsabilidades dos pontos de comutação da rede,
deixando-as a cargo dos terminais em cada ponta. Se houver algum problema com um pacote por exemplo,
se um bit se perder, ou se um nó estiver tão congestionado a ponto de receber mais pacotes do que
consegue processar a rede frame relay se limitará a descartar os dados, esperando que o terminal tome as
providências adequadas. Em geral, será preciso retransmitir os dados que não conseguirem chegar ao
destino. Os protocolos de redes locais como o SPX/IPX da Novell costumam ter suas próprias rotinas de
controle de erros, que seriam redundantes com o controle de erros do X.25 e, assim, se encaixam
58
CPC - Parte I - Conceitos Básicos
perfeitamente com a arquitetura do frame relay. Por outro lado, esse esquema de recuperação tem a
desvantagem de aumentar o tráfego na rede. Se os pacotes do frame relay forem descartados devido aos
congestionamentos, a retransmissão dos dados só fará agravar o problema. Portanto, mesmo que os
terminais possam recuperar os blocos descartados, continua sendo importante minimiza perdas dos pacotes.

9.2. Vantagens e Desvantagens de Frame Relay


 Controle nodo a nodo (fluxo e erros)
 Comunicação mais linear
 menos funcionalidades
 maior vazão / menor espera
 Tipos de aplicações beneficiadas
 baixas taxas de espera
 uso de multiplexação
A desvantagem potencial de frame relay quando comparado ao X.25 é a de que, com frame relay, não é
possível fazer um controle de fluxo e de erro nodo a nodo (apesar do frame relay não ter um controle de fluxo
e erro fim-a-fim, isto é facilmente obtido em um nível mais alto). Além disso, em X.25 o protocolo de controle
de ligação pode ser usado a cada nodo para confiabilidade. Com o uso de frame relay este controle nodo a
nodo é perdido, mas com o aumento da confiabilidade de transmissão e roteamento, esta não é uma grande
desvantagem. A vantagem de frame relay é que o processo de comunicação tornou-se mais linear. A
funcionalidade do protocolo ao nível da interface usuário-rede é reduzida, assim como no processamento
interno da rede. Como resultado, uma menor espera e maior vazão pode ser esperada. Estudos indicam uma
melhora em vazão com uso de frame relay em relação a X.25 de pelo menos uma ordem de magnitude. A
recomendação I.233 da ITU-T indica que frame relay deve ser usado em velocidade de acesso de até 2
Mbps.
O padrão ANSI T1.606 lista quatro exemplos de aplicações que seriam beneficiadas com o serviço de
frame relay em um canal de alta velocidade:
Aplicações de dados orientadas a bloco: um exemplo de aplicações orientadas a bloco seria gráficos de
alta resolução. As características deste tipo de aplicações são baixas esperas e alta vazão.
Transferência de arquivos: aplicações de transferência de arquivos devem atender a requisitos de
transferência de grandes arquivos. Espera não é tão crítica para esta aplicação como, por exemplo, na
aplicação anterior. Alta vazão pode ser necessária para atender grandes transferências em em um tempo
razoável.
Multiplexação de baixa taxa de bits (bit rate): as aplicações multiplexadas de baixa taxa de bits
exploram a capacidade de multiplexação do serviço de frame relay a fim de fornecer uma configuração
econômica de acesso para um grande número de aplicações de baixa taxa de bits. O próximo item descreve
um exemplo deste tipo de aplicação. Essas aplicações podem ser multiplexadas em um canal por um serviço
de rede.
Tráfego orientado a caracteres: Um exemplo de aplicação orientada a caractere é a edição de texto. As
principais características desse tipo de aplicação são pequenos frames, baixa espera, e baixa vazão.
Deve-se considerar dois diferentes planos de operação: o Plano de Controle, que está envolvido no
estabelecimento e término de conexões lógicas, e o Plano de Usuário, que é responsável pela transferência
de dados entre usuários. Logo, protocolos do Plano de Controle são entre um usuário e a rede enquanto que
protocolos do Plano de Usuário fornecem serviços fim-a-fim.
O Plano de Controle para serviço de frame relay é similar ao usado para sinalização de canal em
comutação de circuitos no qual um canal lógico separado é usado para informações de controle. No nível de
enlace, é estabelecido um serviço de controle confiável, com controle de erro e de fluxo entre o usuário e a
rede.
Para a real transferência de informações entre usuários finais, são usadas as seguintes funções:
Delimitação, alinhamento e transparência de frames;
 Multiplexação e demultiplexação de frames usando o campo de endereço;
 Inspeção do frame para garantir que este seja constituído de um número íntegro de octetos;
 Inspeção do frame para garantir que este não seja nem muito longo nem muito curto;
 Idetecção de erros de transmissão;
 Funções de controle de congestionamento.
Essas funções constituem uma subcamada do nível de enlace, fornecendo os serviços básicos de
transferência de frames de um usuário a outro sem controle de fluxo nem de erro. Acima disso, o usuário
pode optar por um serviço de enlace adicional, ou funções fim-a-fim do nível de rede que não são partes do

59
CPC - Parte I - Conceitos Básicos
serviço de frame relay. Baseado nessas funções, a rede oferece frame relay como um serviço da camada de
enlace orientado à conexão com as seguintes propriedades:
 Preservação da ordem de transferência dos frames de uma ponta da rede a outra;
 Uma pequena probabilidade de perda de frames.

9.3. Modos de utilização do Frame Relay


a) Modo ponto-a-ponto
No modo ponto-a-ponto, cada terminal de rede frame relay (roteador multiprotocolo, bridge ou estação)
se comunica com um único outro terminal, através de um determinado circuito virtual estabelecido entre esses
terminais. É o modo indicado para a transmissão de quadros unicast, enviados individualmente em cada um
do CVCs ou PVCs pelo terminal de origem.
b) Modo NBMA
O modo NBMA totalmente interconectado, constituí-se uma rede virtual abrangendo todos os circuitos
virtuais que terminam em um conjunto de portas físicas de um grupo definido de terminais frame relay (uma
rede LIS - Logical IP Subnetwork, no exemplo do TCP/IP). Nesse caso, esse conjunto de circuitos virtuais
encontra-se interconectado na configuração full-mesh.
Cria-se, dessa forma, um pseudobroadcasting, uma vez, que embora o acionamento seja único, o
terminal envia um quadro em cada um dos circuitos virtuais dessa rede virtual. O NBMA totalmente
interconectado assemelha-se a um processo de multiendereçamento como o da rede telex, na hipótese de a
função multiendereçadora se localizar no terminal de origem, e não na rede telex.
Como se verifica, o modo NBMA totalmente interconectado é mais apropriado que o modo ponto-a-
ponto para a transmissão broadcasting, embora deixe a desejar em termos de eficiência de uso do frame
relay. Caso todos os terminais de uma rede virtual tenham de gerar quadro broadcasting, o que ocorre no
roteamento e resolução de endereços das arquiteturas de inter-redes atualmente existentes, a rede frame
relay, além de elevado número de circuitos virtuais necessários, terá de suportar um elevado tráfego de
dados. Observa-se que o problema se agrava quando esse tráfego é overhead, como nos casos de
roteamento e de resolução de endereços acimas mencionados.
Para minorar esse problema, o IETFemitiu a RFC 1586 (Guidelines for Running OSPF over Frame
Relay), onde foi recomendado o modo NBMA parcialmente interconectado.
Nesse caso, válido para o OSPF, torna-se possível a separação lógica dos circuitos virtuais pertinentes
a uma determinada LIS que se conectam a uma porta física de um terminal frame relay. É então possível a
definição de três diferentes LISs, constituídas por associações dos diferentes subconjuntos de interfaces
físicas. Cada um desses subconjuntos de circuitos virtuais em uma interface física constitui uma interface
lógica. Pode-se dizer, então, que uma dessas LISs é constituída pela associação de diferentes interfaces
lógicas de um mesmo domínio.
Em inter-redes baseadas em roteadores multiprotocolo é normalmente impedido o uso de uma interface
física para retransmitir mensagens broadcast recebidas nessa mesma interface física, com o objetivo de evitar
looping de datagramas. Essa facilidade é denominada split horizon.
Para operação no modo NBMA parcialmente interconectado é necessário que a facilidade split horizon
seja desativada. Existem arquiteturas que não permitem a desativação dessa facilidade, impossibilitando
assim o uso do NBMA parcialmente interconectado nos termos da RFC 1586.
Define-se um ou mais dos roteadores da rede como roteadores de trânsito (roteadores designados). Os
roteadores designados são membros de duas ou mais LISs desse domínio pode ser repassado para uma
outra LIS à qual o roteador designado também pertença. Esse roteador designado pode repassar o quadro
broadcast para um ou mais de um dos outros roteadores designados, que difundem esse quadro. Resulta
uma grande economia em termos de circuitos virtuais e de tráfego em trânsito na rede de suporte.

60
CPC - Parte I - Conceitos Básicos
Capítulo V – Web Service – Internet
1. Conceitos Importantes
1.1. Tipos de Rede
a) PAN (Rede Pessoal): Rede formada por uma pequena quantidade de equipamento para uso doméstico.
b) LAN (Rede Local): Rede que ocupa uma pequena área geográfica, correspondente a poucos Km (até 10 Km),
onde os equipamentos ficam próximos e normalmente utiliza-se comunicação via cabo.
c) MAN (Rede Metropolitana): Rede que corresponde a uma metrópole, até 100 Km.
d) WAN (Rede à Longa Distância): Rede para grandes distâncias, acima de 100 Km, onde a comunicação
normalmente será feita por satélite, ondas de rádio, microondas ou cabos de fibra optica.
1.2 Tecnologias de Rede
a) Ethernet (IEEE 802.3)
É uma tecnologia de rede LAN, que trabalha com taxa de 10 Mbps, utilizando topologia barramento
(Coaxial) ou Estrela (Par trançado categoria3 com HUB).
b) Token Ring (IEEE 802.5)
É a tecnologia de rede LAN, que utiliza taxa de 10 Mbps e topolia em anel, com cabo de par trançado.
c) FDDI
É a rede LAN token ring de fibra optica de alto desempenho, que funciona a 100 Mbps. Utiliza um sistema
de duplo anel.
d) Fast Ethernet (IEEE 802.3u)
É uma tecnologia de rede que foi criada para resolver o alto custo da FDDI, que utiliza cabo de par
trançado categoria 5.
2. História da Internet
 Surgiu nos EUA na época da Guerra Fria.
 1969/70 => ARPANET => rede de pesquisa e para troca de informações militares.
 1980 => ARPANET é dividida em ARPANET (pesquisa) e MILNET (Rede Militar). Além disso, surge a
arquitetura para interligar redes, chamada TCP/IP.
 1986 => outras redes universitárias, de pesquisa e de transferência de arquivos são interligadas à ARPANET
e a MILNET, através da arquitetura TCP/IP, com isso o nome muda para INTERNET (INTER=>
Interconectadas e NET=> Rede).
3. Definição
 Rede Mundial para comunicação mundial de dados.
 Redes Interconectadas, através da arquitetura TCP/IP, para comunicação mundial de dados.
a) Protocolo
É um conjunto de normas e regras, que permite a comunicação de dados. É a linguagem da comunicação de
dados.
AÇÃO 1 => Enviar mensagem => Protocolos X, 1 e A
AÇÃO 2 => Receber mensagem => Protocolos Y, 2 e B
AÇÃO 3 => Download => Protocolos Z, 3 e C
b) Arquitetura Cliente/Servidor
 Cliente: máquina que solicita um recurso
 Servidor: máquina que disponibiliza um recurso
4. Taxa de Transmissão
É a quantidade de dados que são transmitidos em um determinado espaço de tempo. A taxa de
transmissão é medida em bps – bits por segundo.
Unidades derivadas do bps
 Kbps = 1000 bps
 Mbps = 1000 Kbps
 Gbps = 1000 Mbps
 Tbps = 1000 Gbps

61
CPC - Parte I - Conceitos Básicos
5. Provedor
Empresa que possibilita o acesso à Internet. Devido à concorrência os provedores oferecem outros recursos:
correio eletrônico, hospedagem de página, arquivos para download, notícias...
6. Backbone
São as grandes redes que formam a Internet (espinhas dorsais). No Brasil: Embratel e RNP (Rede Nacional de
Pesquisa).
7. Formas de Acesso

Ethernet

Intranet
Embratel
Ethernet

Provedor Internet

Intranet

Faculdade RNP

8. Endereços da Internet
8.1. Endereço de Rede

Ethernet

Placa de Rede: endereço físico


ENDEREÇO MAC
INDICA APENAS QUAL É A
MÁQUINA

HOST => máquina conectada à Internet


ENDEREÇO FÍSICO – ENDEREÇO MAC (endereço hexadecimal)
Indica apenas o endereço do HOST, mas não da Rede

ENDEREÇO LÓGICO – ENDEREÇO IP (endereço binário de 32 bits separados em 4 octetos)


Indica a Rede e o Host
11001000. 11111111.00010010.00000101

Representado na forma decimal


200.255.18.5

9. DNS (Domain Name System – Sistema de Nome de Domínio)


No início da Internet as informações eram dispostas em páginas ou sites que eram localizados e acessados por
endereços numéricos chamados endereços IP. Para facilitar o acesso às informações, foi criada uma
representação alfanumérica para os mesmos, chamada Endereço URL. A correspondência ente a representação e
o endereço IP eram armazenadas inicialmente em um único arquivo, o que estava disponível para todos os
HOSTS. Com o crescimento exagerado e rápido dos HOSTS que estavam conectados à Internet, esse sistema de
localização foi substituído pelo Sistema de Nomes de Domínio – DNS. Esse sistema adota uma estrutura
hierárquica.

62
CPC - Parte I - Conceitos Básicos

País (br, pt)

Tipo do Domínio
(com, org, gov)

Nome do Domínio

10. ENDEREÇO URL


ESTRUTURA: PROTOCOLO://REDE.DOMÍNIO.TIP.PAIS
Exemplo: http://WWW.CENTROESTE.COM.BR
Exemplo 2=> HTTP://WWW.GLOBO.COM
Neste caso o país não aparece pois o dominio (registro de endereço) foi feito nos EUA.
Exemplo 3=> HTTP://WWW.UNB.BR
Neste caso o tipo do dominio não aparece, pois é de uma instituição educacional ou de pesquisa
PRINCIPAIS TIPOS DE DOMÍNIO
AGR.BR =>Empresas agrícolas, fazendas
AM.BR => Empresas de radiodifusão sonora
ART.BR => Artes
EDU.BR => Entidades de ensino superior
COM.BR => Comércio em geral
COOP.BR => Cooperativas
ESP.BR => Esporte em geral
FAR.BR => Farmácias e drogarias
FM.BR => Empresas de radiodifusão sonora
G12.BR => Entidades de ensino de primeiro e segundo grau
GOV.BR => Entidades do governo federal
IMB.BR => Imobiliárias
IND.BR => Industrias
INF.BR => Meios de informação (rádios, jornais, bibliotecas, etc..)
MIL.BR => Forças Armadas Brasileiras
NET.BR => Detentores de autorização para o serviço de Rede e Circuito Especializado da Anatel e/ou detentores
de um Sistema Autônomo conectado a Internet
ORG.BR => Entidades não governamentais sem fins lucrativos
PSI.BR => Provedores de serviço Internet
TV.BR => Empresas de radiodifusão de sons e imagens
ETC.BR => Entidades que não se enquadram nas outras categorias

11. Meios Físicos de Acesso


11.1. Linha Telefônica (fio de cobre do tipo par trançado)
a) DIAL-UP (Discada) => linha telefônica pública analógica onde o usuário paga pelo uso (pulso), não
transmite voz e dados simultaneamente e utiliza modens com taxas de transmissão baixa (banda estreita de até 56
Kbps).
Obs: essa linha pode estar ligada a uma central analogical ou digital. Nas centrais analógicas utilizam
mecanismos eletromecânicos, enquanto as digitais utilizam comutação eletrônica.
b) LPCD (Linha Privada para Comunicação de dados/Dedicada) => linha telefônica digital feita entre dois
pontos, conectadas 24 horas e onde o usuário paga pelo serviço. Este tipo de linha pode ser do tipo T1 (padrão
utilizado pelo EUA => taxa de 1.54 Mbps), E1 (padrão utilizado pelo Brasil => taxa de 2 Mbps) ou T3 (taxa de 45
Mbps), que são utilizados por grandes empresas e provedores. Existem também, para usuários, as E1 fracionárias
com taxas de 64 Kbps, 128 Kbps, 256 Kbps, 384 Kbps e 512 Kbps.
c) ISDN (RDSI – Rede Digital de Serviços Integrados): linha digital que divide a banda da linha em 3 canais,
alcançando a taxa de 128 Kbps e que permite transmitir voz e dados simultaneamente.
CANAL B => 2 canais de 64 Kbps que permite transmitir voz e dados.
CANAL D => 1 canal de 16 Kbps que transmite sinais de controle.
d) ADSL (Asynchonous Digital Subscriber Line): linha digital assimétrica (taxas diferentes para enviar e
receber dados). Esta linha oferece taxas de 256 Kbps, 512 Kbps e 1.54 Mbps. Esta linha trabalha com 2 canais

63
CPC - Parte I - Conceitos Básicos
para transmissão de dados e um para voz, possuindo um modem especial (MODEM ADSL) que faz a divisão de
freqüência.
e) HDSL (High bit rate Digital Subscriber Line): linha digital simétrica que oferece taxas de 2 Mbps (padrão
brasileiro – 3 pares de fio trançado) ou 1.54 Mbps (padrão Americano – 2 pares de cabo de fio trançado).
f) SDSL (Single Line Digital Subscriber Line): mesmo mecanismo da HDSL, mas que utiliza um único par de fio
trançado.
g) VDSL (Very Hight bit rate Digital Subscriber Line): este é um tipo que trabalha com taxas de 13 e 52 Mbps
=> receber dados e 1.5 e 2.3 => para enviar, utilizando um único par de fio trançado.

Pública Voz/Dados
Linha Tipo Banda Taxa Simetria Privada Ao mesmo Tempo
Dial-up Analógica Estreita 56 Kbps Assimétrica Pública Não
LPCD Digital Larga 1,54, 2 e 45 Mbps Simétrica Privada Não
ISDN Digital Larga 128 Kbps Simétrica Pública Sim
ADSL Digital Larga 128 Kbps a 1,54 Mbps Assimétrica Pública Sempre
HDSL Digital Larga 1,54 Mbps – 2 pares Simétrica Pública Sempre
2 Mbps – 3 pares
SDSL Digital Larga 1,54 e 2 Mbps – 1 par Simétrica Pública Sempre
VDSL Digital Larga 13 Mbps e 52 Mbps Assimétrica Pública Sempre

Novas tecnologias para acesso à Internet via linha telefônica


a) A VDSL2 foi padronizada em 2005. VDSL2 poderia ser descrita como uma fusão de ADSL2plus e VDSL1,
otimizada para aplicações de rede de acesso profundo em fibra, isto é, onde as alças DSL são encurtadas para
permitir performance mais alta. A performance máxima para aplicações simétricas é 100Mbps, e para
assimétrica, é 150Mbps para o usuário e 50Mbps para a rede.
b) A tecnologia ADSL2 possui taxas de dowstream de até 12 Mbps e upstream de 1 Mbps. O ADSL2 ainda possui
a vantagem de economia de energia pois o modem para esta tecnologia foi projetado para funcionar somente
quando o computador estiver em uso, ou seja, quando o computador entra em stand by o modem também
entra. O ADSL2 também possui uma melhor modulação que o ADSL normal e possui um “reordenador” de
tonalidades para dissipar os sinais de interferência causados pelas ondas de rádio AM para ter um melhor
ganho devido a nova modulação utilizada.
c) ADSL2plus trabalha com taxas de 24 Mbps download e 1 Mbps upload
d) G.SHDSL é 5.6 Mbps de upload/download

11.2. Cable Modem


Tipo de comunicação feita por cabo coaxial (cabo utilizado pelas TV a cabo), e possibilita teoricamente taxas
de até 30 Mbps. Na prática oferece serviços de 256 Kbps, 384 Kbps, 512 Kbps, 768 Kbps, até 2 Mbps.
A “NET” apresenta um serviço de acesso à Internet feito por cabo coaxial, chamado “Virtua”.
A “MAIS TV” apresenta um serviço de acesso à Internet feito por antena e cabo coaxial, chamado
“Linkexpress”.
11.3. WDN
É a conexão feita por cabo de fibra óptica, com taxas teóricas de até 14,4 Tbps. Na prática trabalha em Mbps
até Gbps. Este tipo de cabo é utilizado nos chamados cabos submarines, que realizam a comunicação entre os
paises .
11.4. PLC (Power Line Communications)
É uma tecnologia capaz de transmitir sinais de dados e voz pela rede de distribuição de energia. Esse meio
possui taxas elevadas que variam de 2,4 Mbps de forma simétrica, até 23 Mbps de forma assimétrica
(enviando a 17 Mbps). Seu custo é reduzido, por isso, é conhecida como Internet Popular. No Brasil é utilizada
no Paraná, Minas Gerais, São Paulo e Brasília.

Meios Físicos de Acesso


a) Linha Dial-up

Placa de Fax-modem
Converte sinais analógicos da linha telefônica em sinais
digitais binários do computador

64
CPC - Parte I - Conceitos Básicos

b) Linha ADSL

Modem
ADSL

Filtro ADSL Placa de Rede


Evita a interferência Adéqua os sinais
dos dados na voz digitais enviados pela
central telefônica
digital em sinais
binários para o
computador

c) Cable modem

Decodificado TV
r

Cable
Modem

Divisor de cabos
Placa de Rede

d) PLC

Gateway

Modem
PLC

Converte sinais binários do Rede de


computador em energia Telecomunicações
elétrica

11.5. Wireless
É um tipo de comunicação sem fio, que pode ser feita através de ondas de rádio, microondas ou satélite.
TECNOLOGIA WIRELESS
a) Espelhamento => ainda no campo da pesquisa e sendo testada na Alemanha atualmente, esta tecnologia
utiliza balões e dirigíveis que transmitem o sinal de Internet a grandes cidades através de espelhamento - os sinais
são refletidos através de grandes espelhos nesses veículos aéreos até captadores nas casa dos usuários. Tem se
mostrado de dificil implantação por conta de variações climáticas.
b) Satélite => usada em menor escala por empresas e instituições financeiras, esta tecnologia utiliza satélites de
comunicação para transmitir o sinal diretamente aos computadores que os captam através de antenas parabólicas
comuns e receptores. A grande vantagem é que pode-se estabelecer conexão em qualquer parte do país, até
mesmo em áreas remotas. A velocidade depende do satélite envolvido e do serviço. No Brasil, a Embratel oferece
o serviço pela Star One - bidirecional completo - tanto para usuários residenciais como corporativos. Nos anos 90 a
DIRECTV tentou emplacar um serviço desse tipo a consumidores residenciais nos EUA mas não obteve sucesso
principalmente pela banda de transmissão ser unidirecional - era capaz de apenas receber informações, sendo
necessário um modem simples para a transmissão.
c) WAP => é a tecnologia via microondas utilizada para acesso à Internet. Essa tecnologia é utilizada para
comunicação móvel (celular). Suas principais desvantagens são a falta de segurança e a baixa taxa de
transmissão.
d) IrDA => é a tecnologia wireless via infravermelho, que não é utilizada para acesso à Internet, pois tem que ser
entre dois pontos visuais (sem obstáculos). É utilizada para conexão com periféricos, como mouse, teclado e
impressoras.

65
CPC - Parte I - Conceitos Básicos
e) Bluetooth => Bluetooth é um padrão para comunicação sem-fio, de curto alcance e baixo custo, por meio de
conexões de rádio ad hoc. Através do Bluetooth, os usuários poderão conectar uma ampla variedade de
dispositivos de computação, de telecomunicações e eletro-domésticos de uma forma bastante simples, sem a
necessidade de adquirir, carregar ou conectar cabos de ligação. O Bluetooth suporta tanto serviços síncronos para
tráfego de voz quanto serviços assíncronos para transmissão de dados. Em um enlace assíncrono, a taxa máxima
que um usuário pode obter é de 723,2 kbps. No sentido contrário, a taxa máxima é de 57,6 kbps.
f) CDMA (Code Division Multiple Access/Acesso Múltiplo por Divisão de Código) é uma tecnologia móvel e
padrão de sistema para celulares. A tecnologia de celulares CDMA vem popularizando-se pois oferece vantagens
sobre a tecnologia GSM, como maior velocidade em transmissão de dados, o que significa acesso a Internet WAP
mais rapidamente para os usuários de celular.
g) GSM (Global System for Mobile Communications/ Sistema Global para Comunicações Móveis) é uma
tecnologia móvel e o padrão mais popular para celulares do mundo. O GSM diferencia-se muito de seus
predecessores sendo que o sinal e os canais de voz são digitais, o que significa que o GSM é visto como um
sistema de celular de segunda geração (2G). Este fato também significa que a comunicação de dados foi acoplada
ao sistema logo no início. GSM é um padrão aberto desenvolvido pela 3GPP.
Do ponto de vista do consumidor, a vantagem-chave do GSM são os serviços novos com baixos custos. Por
exemplo, a troca de mensagens de texto foi originalmente desenvolvida para o GSM. A vantagem para as
operadoras tem sido o baixo custo de infra-estrutura causada por competição aberta. A principal desvantagem é
que o sistema GSM é baseado na rede TDMA, que é considerada menos avançada que a concorrente CDMA. No
mesmo tempo, o sistema GSM continua a desenvolver-se com o lançamento do GPRS. Além disso, transmissão
de dados em alta velocidade foi adicionada no novo esquema de modulação EDGE. A versão de 1999 do padrão
introduziu índices relativamente altos de transmissão de dados, e é normalmente referida como 3G.
h) GPRS (General Packet Radio Service) é uma tecnologia que aumenta as taxas de transferência de dados nas
redes GSM existentes. Esta permite o transporte de dados por pacotes (Comutação por pacotes). Sendo assim, o
GPRS oferece uma taxa de transferência de dados muito mais elevada que as taxas de transferência das
tecnologias anteriores, que usavam comutação por circuito, que eram em torno de 12kbps. Já o GPRS, em
situações ideais, pode ultrapassar a marca dos 170kbps. No entanto na prática, essa taxa está em torno dos 40
kbps.
Diferente das tecnologias de Comutação de Circuitos que é um modo no qual uma conexão (ou circuito) é
estabelecida do ponto de origem da transferência de dados ao destino. Recursos da rede são dedicados por toda a
duração da chamada, até que o usuário interrompa a conexão. No GPRS o serviço é ”sempre ativo”, ou seja, ele é
um modo no qual os recursos somente são atribuídos a um usuário quando for necessário enviar ou receber
dados. Esta técnica permite que vários usuários compartilhem os mesmos recursos, aumentando assim a
capacidade da rede e permitindo uma gerência razoavelmente eficiente dos recursos. Isto permite às operadoras
GPRS disponibilizar acesso à Internet em alta velocidade e a um custo razoável, pois a cobrança é feita pela
quantidade de pacotes de dados transmitidos e não pelo tempo de conexão à rede.
i) TDMA (Time Division Multiple Access/Acesso Múltiplo por Divisão de Tempo) é um sistema de celular
digital que funciona dividindo um canal de frequência em até seis intervalos de tempo distintos. Cada usuário
ocupa um espaço de tempo específico na transimissão, o que impede problemas de interferência.
Os sistemas celulares de segunda geração como o IS 54, IS 136 e o GSM utilizam o TDMA na sua interface
com a estação móvel.
Um dos padrões de comunicação de voz via ondas de rádio, utilizado por operadoras nos serviços de
telefonia celular digital, baseado em TDM. Consiste na divisão de cada canal celular em três períodos de tempo
para aumentar a quantidade de dados que pode ser transmitida. Cada canal TDMA americano tem a mesma
largura de banda dos canais AMPS, 30 KHz, e é usado por três assinantes. O sinal digitalizado de cada assinante,
de 64 Kbps, é comprimido para 8 Kbps por vocoders (padrão IS-54). Em seguida, o sinal comprimido dos três
assinantes é transmitido pelo mesmo canal, um por vez. Os padrões TDMA IS-54 e IS-136, portanto, aumentam
em três vezes a capacidade do padrão AMPS. O padrão IS-136 difere do IS-54 pela introdução de um canal de
controle digital.
Trata-se de uma tecnologia que permite às redes GSM suportar e oferecer serviços de terceira geração de
telefonia móvel. Foi desenvolvida para capacitar a transmissão de uma grande quantidade de dados a altas taxas
de velocidade (384 kbit/s) e usa o mesmo conceito da tecnologia TDMA (Time Division Multiple Access), no que se
refere à estrutura dos quadros, canais lógicos e largura de banda de 200kHz, assim como as redes GSM atuais.
Desta forma, permite a coexistência das redes atuais e de 3G, dentro do mesmo espectro de freqüência.
j) W-CDMA (Wide-Band Code-Divison Multiple Access) é a tecnologia 3G líder e é a única usada em UMTS. É uma
tecnologia de interface de rádio de banda larga que provê velocidades de dados muito superiores - até 2 Mbit/s.
Permitirá o uso mais eficiente do espectro de rádio, se comparado a outras técnicas de rádio disponíveis hoje.
Ele foi projetado para tratar serviços de multimídia que demandam grande largura de banda, ou seja,
serviços de Internet Móvel. Estes serviços serão acessados por parte dos usuários através de uma grande
variedade de aparelhos, incluindo telefones móveis, PDAs, palm pilots e laptops.

66
CPC - Parte I - Conceitos Básicos
Uma evolução ao padrão W-CDMA é o chamado HSDPA, que proporciona velocidades da ordem de
10Mbit/s no enlace direto, exclusivamente para transmissão de dados.
REDES WIRELESS
a) WPAN (wireless personal area network)
a) IEEE 802.15.1 – tecnologia Bluetooth – frequência de 2,4 GHz – taxa de 1 Mbps (versão 1.1) até 3 Mbps
(versão 2 e 3) e a área de cobertura é de 100 m (classe 1), 10 m (classe 2) e 1 m (classe 3)
b) IEEE 802.15.4 - tecnologia ZigBee – tecnologia via ondas de rádio que utiliza 2.4 GHz com taxa de 250 kbps,
915 MHz com 40 Kbps e 868 MHz com 20 Kbps. A área de cobertura varia de 10 m a 75 m

b) WLAN: redes locais wireless


c) IEEE 802.11a - wi-fi5: utiliza freqüência 5GHz, com taxa de 54 Mbps e área de cobertura de 20m.
d) IEEE 802.11b – wi-fi: utiliza freqüência 2,4 GHz, que possibita taxas de 11 e 12 Mbps e área de cobertura de
100m.
e) IEEE 802.11g – WI-FI2 – 2,4 GHz – taxa de 54 Mbps e área de cobertura de até 100 m.
c) WMAN: redes metropolitanas wireless
f) IEEE 802.16 - WiMax (Worldwide Interoperability for Microwave Access), freqüência de 2 a 11 GHz e taxas de
70 Mbps, com alcance de 50 Km
g) IEEE 802.20 - Mobile-Fi, freqüência de 3,5 GHZ, com taxas de transmissão simétricas de 1 Mbps a 4 Mbps,
com distâncias de 15 km

WI-FI – FIDELIDADE SEM FIO


h) A rede wi-fi, permite o acesso à Internet em qualquer local público que possua um Access Point, mas limita-se
a uma área de cobertura pequena de 100 m, pois utiliza o padrão IEEE 802.11b, que trabalha com taxas de 12
Mbps. Para este tipo de conexão à Internet o usuário se comunica a um access point através de um
computador com cartão wireless, através de tecnologia via ondas de rádio. O usuário deve possuir um
provedor wireless.

12. Conceitos Importantes sobre Internet


a) Hipertexto: conjunto de informações na forma de textos, sons e imagens.
b) Hyperlink: são palavras ou figuras que permitem abrir páginas da Internet
c) Página: conjunto de informações referentes a uma pessoa física ou juridica, que trafega na Internet. Estas
páginas são criadas em linguagens especificas, como por exemplo, HTML, ASP, Java e Flash.
d) Site: conjunto de páginas que tratam de assuntos diferentes, referentes a uma pessoa juridical ou fisica, que
trafega na Internet.
e) Home Page: página inicial de um site.
f) Download: ato de salvar um arquivo da Internet no computador do usuário. Ato de transferir uma copia de um
arquivo de uma máquina remota para o computador do usuário.
g) Upload: ato de enviar um arquivo do usuário para Internet. Um exemplo, seria no caso do usuário criar uma
página e enviar para um servidor de hospedagem para que o mesmo a disponibilizasse na Internet.
h) Newsgroups (Grupo de Notícias): são grupos existentes na Internet para debates e discussões sobre assuntos
específicos.
i) Acesso Remoto: é o tipo de acesso, onde o usuário não está fisicamente na máquina onde deseja realizar uma
tarefa.
j) FAQ (Frequently Asked Questions): são listas com perguntas e respostas comuns sobre um determinado
assunto, que normalmente esta disponibilizada em newsgroups da Internet.
13. Educação, Negócios, Medicina e outras áreas na Internet
13.1. EAD – Educação à Distância: é uma forma de aprendizado onde as aulas são realizadas de forma não
presencial, via Internet. No Brasil já existem cursos de graduação realizados por EAD.
13.2. E-Commerce – Comércio Eletrônico: é um tipo de comércio, onde as transações comerciais são realizadas
via Internet. Como exemplo, temos no Brasil uma modalidade de licitação chamada Pregão que é realizada via
Comércio Eletrônico, que vem sendo muito incentivada, pois agiliza o processo licitatório.
13.3. Medicina On-Line: existem hospitais que realizam acompanhamento médico aos seus pacientes críticos à
distância, via Internet.
13.4. Justiça On-Line: nos dias atuais alguns tribunais realizam audiências via Internet, onde os réus
permanecem nos presídios (garante maior segurança e reduz o custo) e utilizam câmaras de vídeo conferência
para participar da audiência.

14. Intranet
É uma rede privada criada em uma empresa por motivos de segurança e para agilizar o processor de
comunicação de dados. Essa rede utiliza a Arquitetura TCP/IP, assim como os mesmos programas da Internet.
Obs: cada host da Intranet terá que possuir um endereço IP válido na Intranet.
67
CPC - Parte I - Conceitos Básicos
Obs2: a Intranet pode permitir o Acesso Remoto e o Acesso à Internet, dependendo da política de segurança
da Empresa.
Acesso Remoto
Acesso a uma máquina que não se encontra fisicamente

Rede do
Trabalho

Extranet: acesso remoto a uma Intranet

Intranet
Internet

Página

Intranet

15. Arquitetura TCP/IP


Conjunto de protocolos (conjunto de normas e regras que permitem a comunicação, transporte e serviços em
redes), utilizados como padrão da Internet e separados em camadas.

CAMADAS DA ARQUITETURA TCP/IP


CAMADAS FUNÇÃO
Reúne os protocolos de alto nível que fornecem serviços de
comunicação ao usuário. Esses serviços são de acesso remoto
Aplicação (TELNET), correio eletrônico (SMTP, IMAP, POP3), transferência de
arquivos (FTP):, grupo de notícias (NNTP), abrir páginas da Internet
(http).
Prepara a mensagem para o envio, sendo responsável por
Transporte
segmentar as mensagem em pacotes (empacotar e desempacotar).
Responsável pelo envio dos pacotes, verificando qual o caminho por
Rede (Inter-Rede Ou Internet)
onde serão enviados os mesmos (roteamento)
Interface de Rede (Física) Preparam os pacotes para o meio de comunicação.
PROTOCOLOS E APLICAÇÕES
a) HTTP (Hiper Text Transfer Protocol): responsável pela transferência de hipertextos, ou seja, é o protocolo que
permite abrir páginas da Internet. Camada: Aplicação
b) FTP (File Transfer Protocol): protocolo responsável pela transferência de arquivos (download e upload).
Camada: Aplicação
Prinicipais características:
 permite que o usuário transfira, renomeie ou remova arquivos e diretórios remotos
 só permite a transferência de arquivos completos
 a operação FTP baseia-se no estabelecimento de 2 conexões entre o cliente e o servidor
 cliente: módulo FTP que está solicitando o acesso a arquivos remotos
 servidor: módulo FTP que fornece o acesso aos arquivos
c) NNTP (Network News Transfer Protocol): protocolo de distrituição, solicitação, recuperação e publicação de
notícias. Camada: Aplicação
d) TELNET: protocolo que permite acesso a dados de um computador onde o usuário não se encontra fisicamente,
ou seja, acesso remoto. Camada: Aplicação
e) SNMP (Simple Network Mangament Protocol): responsável pelo gerenciamento de redes. Camada:
Aplicação
f) SMTP (Simple Mail Transfer Protocol): é o protocolo responsável por enviar mensagens de correio eletrônico.
Camada: Aplicação

68
CPC - Parte I - Conceitos Básicos
g) POP (Post Office Protocol): é o protocolo que é responsável por verificar e transferir mensagens do servidor
de mensagem para o computador do usuário. Esse protocolo permite que a mensagem seja visualizada apenas
por uma única máquina. Camada: Aplicação
h) IMAP (Interactive Mail Access Protocol): tem a mesma função do POP, mas ao invés de transferir a
mensagem, transfere apenas uma cópia da mesma. Esse protocolo permite que a mensagem seja visualizada por
máquinas diferentes. Camada: Aplicação
i) DHCP (Dynamic Host Configuration Protocol): protocolo que facilita a configuração IP de Workstations
(estações de trabalho) de uma rede. Camada: Aplicação
j) TCP (Transmission Control Protocol): responsável por preparar a mensagem para o envio, segmentando as
mensagens em pacotes, endereçando os mesmos, sendo considerado um protocolo complexo. Camada:
Transporte.

O protocolo TCP oferece as seguintes características:


 Orientado à conexão: apresenta Controle de Fluxo e Erro fim-a-fim
 Serviço confiável de transferência de dados (garante a entrega dos pacotes)
 Ordenação de mensagens
 Opção de envio de dados urgentes
l) UDP (User Datagram Protocol): protocolo de transporte mais simples, que não é orientado à conexão e não-
confiável. É uma simples extensão do protocolo IP e foi desenvolvido para aplicações que não geram volume muito
alto de tráfego na Internet. Não faz ordenação e controle de fluxo. Camada: Transporte
m) IP (Internet Protocol): protocolo responsável envio de pacotes. É um protocolo não-confiável, pois não garante
a entrega dos pacotes. Além disso, este protocolo não é orientado à conexão. Camada:Inter-Rede.
n) ARP (Address Resolution Protocol): converte Endereço IP (lógico) em endereço MAC (físico). Camada:Inter-
Rede.
o) RARP (Reverse Address Resolution Protocol): converte Endereço MAC em endereço IP. Camada:Inter-
Rede.

16. VoIP
A Agência Nacional de Telecomunicação - ANATEL tem como definição contida em seu glosário que a VOIP (VOZ
via IP) é a tecnologia que possibilita o uso de redes IP como meio de transmissão de voz, o conceito é simples e
consiste em converter os pacotes de voz analógicos em pacotes digitais e fazê-los trafegar pela internet.
Algumas das vantagens de se implantar a VOIP estão na relação custo/benefício, reduzir significativamente o
custo com telefonia, efetuar chamadas de longas distancias a custos locais, integrar telefonias móveis com
telefonia fixas são. Outra vantagem é não ter de criar uma outra estrutura para apenas o tráfego de voz, podendo
assim aproveitar a estrutura já existente na empresa. Devido a isto o retorno do investimento é mais rápido.
Programas da VOIP
a) Skype
b) VoxFone
c) Voipwebfone
d) IOL Talki
e) NetAppel
f) VoipBuster

17. Programas
17.1. Software de Conexão
Programa que permite realizar e criar conexões à Internet.
Exemplo: Acesso à Rede Dial-Up
17.2. CHAT
Programa que permite realizar conversas eletrönicas.
17.3. ICQ
Programa criado para conversas on-line entre vários usuários e que permite a utilização de vídeo conferência.
17.4. IRC (Internet Relay Chat)
Programa criado para conversas on-line entre dois usuários e que permite a utilização de vídeo conferência.
17.5. TELNET (Programa e Protocolo)
Programa que permite acesso remoto (acesso quando o usuário não se encontra fisicamente na rede)
17.6. Browser (Navegador) – Internet Explorer 6.0
Programa que permite abrir páginas e sites da Internet, localizar e pesquisar informações na mesma, efetuar
download e até mesmo ler e redigir mensagens de correio eletrônico.

69
CPC - Parte I - Conceitos Básicos

17.6.1. Botões

a) Voltar: Vota para página anterior a atual


Tecla de Atalho: ALT+seta à esquerda ou BACKSPACE

b) - Avançar: Executa ação contrária ao voltar.


Tecla de Atalho: ALT+seta à direita

c) - Parar: Interrompe a abertura da página.


Tecla de Atalho: ESC

d) - Atualizar: Reinicia a abertura da página, atualizando o conteúdo da mesma.


Tecla de Atalho: F5 ou CTRL+R

e) - Página Inicial: Vota para página que é aberta automaticamente quando o Internet Explorer é iniciado.
Tecla de Atalho: ALT+HOME

f) : Pesquisar: Localiza páginas da Internet que contenham uma determinada informação.


Tecla de Atalho: CTRL+E

g) : Mídia: Permite executar arquivos de som e vídeo e escutar uma estação de rádio pelo computador.

70
CPC - Parte I - Conceitos Básicos

h) - Favoritos: Mostra as páginas da pasta favoritos, permite adicionar a página atual à pasta favoritos,
organizar as páginas na pasta favoritos, apagar páginas dessa pasta e criar subpastas para essa pasta.
Tecla de Atalho: CTRL+I
Adicionar a Favoritos: CTRL+D
Organizar Favoritos: CTRL+B

i) - Histórico: Mostra as páginas que foram acessadas; permite definir como essas páginas serão
mostradas: por data, por nome de site, apenas as páginas visitadas hoje ou apenas as mais visitadas; permite
adicionar páginas dessa pasta à pasta Favoritos (botão direito do mouse); e pesquisar informações nas páginas
dessa pasta.
Tecla de Atalho: CTRL+H

71
CPC - Parte I - Conceitos Básicos

j) - Correio: Permite ler e redigir mensagens de correio eletrônico e enviar a página atual ou apenas o link da
mesma para um destinatário de mensagem.

k) - Imprimir: Imprime a página atual, mas não apresenta opções de impressão.

l) - Editar: Abre o editor de páginas padrão, que pode ser o Word ( ), FrontPage ( ),Excel ( ),
Publisher ( ) e Bloco de Notas, mostrando a página em sua linguagem de criação (formato HTML).

l) - Discussões na Web: permite que qualquer pessoa anexe comentários a uma página da Web ou a
qualquer documento que possa ser aberto com um navegador (como arquivos .xls, .doc, .ppt, .gif e assim por
diante), a fim de que os comentários apareçam com o documento, mas sejam armazenados em um servidor de
discussão.

m) - Tela Inteira: faz com que a página atual ocupe a tela do computador como um todo.
n) - Segurança (Barra de Status): permite definir critérios de segurança em relação à Internet ou a
Intranet.

o) Messenger : abre o programa de bate-papo Messenger.

17.6.2. Menus (Opções Principais)


I. Menu Arquivo
a) Salvar como: permite efetuar um download da página atual.
b) Enviar: permite enviar a página atual para um destinatário de correio eletrônico.
c) Editar: mesma função que o botão Editar.
d) Trabalhar off-line: permite utilizar o Internet Explorer, sem estar conectado. O Internet Explorer permite
abrir páginas que foram acessadas, estando no modo off-line, mas não estarão atualizadas.
II. Menu Editar
 Copiar: permite copiar informações da página atual, mas não é download.
 Localizar: permite localizar uma informação na página atual. Não confundir com o botão Pesquisar.
III. Menu Exibir
Apresenta as opções: Voltar, Avançar, Parar, Atualizar, Página Inicial, Tela Inteira e Tamanho da Fonte.
IV. Menu Favoritos
Mesma função que o botão Favoritos.
V. Menu Ferramentas
a) Correio e Notícias: mesma função que o botão Correio.
b) Sincronizar: permite atualizar as páginas off-line.
c) Windows Update: abre o site da Microsoft, permitindo atualizar o Windows.
d) Opções da Internet:
a) Guia Geral: Permite definir a página inicial, apagar cookies (Excluir cookies), apagar o conteúdo da pasta
Temporary Internet - contém as páginas que foram acessadas (Excluir arquivos), alterar o espaço ocupado
por Temporary Internet (Configurações), alterar a quantidade de dias que as páginas permanecerão na
pasta históricos (padrão 20 dias), apagar o conteúdo da pasta histórico (Limpar histórico), alterar a cor de
72
CPC - Parte I - Conceitos Básicos
fonte, fundo e links da página atual (Cores), alterar a fonte da página atual (Fonte), alterar o idioma no caso
do site trazer opções (Idioma), e fazer com que as páginas sejam sempre abertas segundo as
características de cores e fontes especificadas no Internet Explorer (Acessibilidade).

b) Guia Segurança: definir critérios de segurança

Zonas
a) Zona da Internet: por padrão, essa zona contém qualquer informação que não esteja em seu computador
nem na intranet ou que seja atribuída a qualquer outra zona. O nível de segurança padrão para a zona da
Internet é Médio. Você pode alterar as configurações de privacidade da zona da Internet na guia
Privacidade de Opções da Internet.
b) Zona da intranet local: geralmente, essa zona contém qualquer endereço que não exija um servidor
proxy, como definido pelo administrador do sistema. Ela inclui os sites especificados na guia Conexões,
73
CPC - Parte I - Conceitos Básicos
caminhos da rede (como \\nome_computador\nome_pasta) e sites da intranet local (normalmente,
endereços que não contêm pontos, como http://interno). O nível de segurança padrão para a zona da
intranet Local é Médio, portanto, o Internet Explorer permitirá que todos os cookies dos sites dessa zona
sejam salvos em seu computador e lidos pelos sites que os criaram.
c) Zona de sites confiáveis: essa zona contém sites nos quais você confia, ou seja, aqueles dos quais você
acredita poder baixar ou executar arquivos sem se preocupar com danos no computador ou nos dados. O
nível de segurança padrão para a zona de sites confiáveis é Baixo, portanto, o Internet Explorer permitirá
que todos os cookies dos sites dessa zona sejam salvos em seu computador e lidos pelos sites que os
criaram.
d) Zona de sites restritos: essa zona contém sites nos quais você não confia, ou seja, aqueles dos quais
você não tem certeza de que pode baixar ou executar arquivos sem danificar o computador ou os dados. O
nível de segurança padrão para a zona de sites restritos é Alto, portanto, o Internet Explorer bloqueará
todos os cookies dos sites dessa zona.

Níveis de Segurança
e) Alto: impede o envio de cookies e a execução de programas pelo site visitado.
f) Médio: permite o recebimento de conteúdo, mas com confirmação.
g) Médio-baixo: mesmo recurso do médio, mas sem solicitação de confirmação.
h) Baixo: permite o recebimento de qualquer conteúdo e a execução de qualquer programa sem solicitação
de confirmação.
c) Guia Privacidade: permite definir o que será possível ser enviado pelo site (bloquear cookies e listas pop-
ups) visitado

Níveis de Privacidade

i) Bloquear todos os cokies: impede o recebimento de qualquer cookies e a visualização de qualquer


cookie já existente no computador por site que é visitado.
j) Alta: bloqueia cookies que não possuam uma diretiva de privacidade compacta e bloqueia cookies que
usam informações de identificação pessoal sem o conhecimento implícito do usuário.
k) Média-Alta: bloqueia cookies de terceiros que não possuam uma diretiva de privacidade compacta,
bloqueia cookies de terceiros que usam informações de identificação pessoal sem o conhecimento implícito
do usuário e bloqueia cookies internos que usam informações de identificação pessoal sem o
conhecimento implícito do usuário.
l) Média: bloqueia cookies de terceiros que não possuam uma diretiva de privacidade compacta, bloqueia
cookies de terceiros que usam informações de identificação pessoal sem o conhecimento implícito do

74
CPC - Parte I - Conceitos Básicos
usuário e restringe cookies internos que usam informações de identificação pessoal sem o conhecimento
implícito do usuário.
m) Baixa: restringe cookies de terceiros que não possuam uma diretiva de privacidade compacta, restringe
cookies de terceiros que usam informações de identificação pessoal sem o conhecimento implícito do
usuário.
n) Aceitar todos os cookies: aceita o recebimento de qualquer cookie e os cookies existentes no
computador poderão ser lidos pelos sites criadores.

d) Guia conteúdo
e) Supervisor de conteúdo: permite classificar as páginas da Internet em relação ao gênero e impedir que
usuários do computador tenham acesso a determinado gênero.
f) Certificados: permite remover todos os certificados de autenticação de cliente do cache do SSL (limpar
estado SSL) e permite exigir que sites da Web seguros enviem seus certificados de segurança antes que
você envie informações para eles (certificados). Os sites da Web seguros enviam ao Internet Explorer um
certificado que fornece algumas informações sobre a segurança do site. Os certificados são emitidos para
uma organização particular por um período de tempo específico. O Internet Explorer verifica o endereço
Internet armazenado no certificado e se a data atual é anterior à data de expiração. Se houver um
problema, o Internet Explorer pode exibir um aviso. A visualização de informações quase nunca apresenta
um risco de segurança, mas o envio de informações, como, por exemplo, o número do seu cartão de
crédito, é muitas vezes arriscado.
g) Informações Pessoais: permite habilitar o recurso de autocomplementar de formulários ou senhas e
inclusive limpar estas informações. Além disso, permite especificar informações pessoais que podem ser
compartilhadas quando um site da Web solicitar informações sobre seus visitantes.

h) Guia Conexões: permite definir as características da conexão à Internet através de um linha dial-up ou
mesmo através de uma rede local.

75
CPC - Parte I - Conceitos Básicos

i) Guia Programas: definir quais os programas serão utilizados como padrão para correio eletrônico, grupo
de notícias e editor de páginas.
j)

k) Guia Avançado: permite definir as características gerais do Internet Explorer, como por exemplo, o
protocolo de segurança que será habilitado (SSL 2, SSL 3 e TSL), mostrar ou não imagens, sons,
animações e vídeos (abrir mais rápido as páginas da Internet), habilitar ou desabilitar a pesquisa a partir da
barra de endereços.

17.7, Browser Mozzila Firefox 1.5

17.7.1. Botões
76
CPC - Parte I - Conceitos Básicos

a) Voltar : permite voltar para a página anterior a atual.


Tecla de Atalho: ALT+seta para à esquerda ou BACKSPACE

b) Avançar : executa ação contrária ao Voltar.


Tecla de Atalho: ALT+seta para à direita ou SHIFT + BACKSPACE

c) Recarregar : reinicia a abertura da página atual, atualizando os objetos da mesma.


Tecla de Atalho: F5 ou CTRL+R

d) Parar : interrompe a abertura da página.


Tecla de Atalho: ESC

e) Página inicial : mostra a página definida como inicial do Mozilla, ou seja, a página que será
automaticamente aberta quando o Mozilla for iniciado.
Tecla de Atalho: ALT+HOME

f) Imprimir : abre a caixa de diálogo com as opções de impressão.


Tecla de Atalho: CTRL+P

g) Download : abre o gerenciador de downloads.


Tecla de Atalho: CTRL+J

77
CPC - Parte I - Conceitos Básicos

h) Histórico : mostra o painel Histórico, que mantém visível o histórico de sites visitados. Os sites podem ser
visualizados em ordem de data, nome do site, últimos visitados e por ordem de mais acessados.
Tecla de Atalho: CTRL+H

i) Favoritos : mostra em um painel à esquerda o conteúdo da pasta favoritos.


Tecla de Atalho: CTRL+B ou CTRL+I
Adicionar página aos Favoritos => CTRL+D

j) Nova Janela : abre uma nova janela com a página inicial ou de um link que for arrastado até este botão.
Tecla de Atalho: CTRL+N

k) Mensagens : permite ler mensagens recebidas e redigir mensagens


Tecla de Atalho: NOVA MENSAGEM => CTRL+M

l) Site não funciona : permite enviar informações a equipe do Mozilla sobre um site que não funciona.
m) Campo de Endereços : permite digitar o
endereço e abrir uma página da Internet. Também apresenta uma lista com as últimas páginas que foram
acessadas.
n) Campo de Pesquisa : permite localizar sites da Internet que contenham uma informação.
78
CPC - Parte I - Conceitos Básicos
17.7.2. Outros atalhos do teclado
Abrir arquivo Ctrl+O
Completar endereço com .com.br Ctrl+Enter
Completar endereço com .net Shift+Enter
Completar endereço com .org Ctrl+Shift+Enter
Excluir entrada selecionada do Autocompletar Shift+Delete
Tela inteira F11
Pesquisar na web Ctrl+K
Ctrl+E
Copiar Ctrl+C
Recortar Ctr+X
Colar Ctr+V
Desfazer Ctr+Z
Selecionar tudo Ctr+A
Ir para o fim da página END
Ir para o topo da página Home
Salvar como... Ctrl+S
Tamanho do texto: Aumentar Ctrl+”+”
Tamanho do texto: Diminuir CtrlCmd+”-“
Tamanho do texto: Normal Ctrl+0
Código-fonte Ctrl+U

17.7.3. Menus
I – Menu Arquivo
a) Nova janela: abre uma nova janela do Firefox.
b) Nova aba: abre uma nova aba na janela selecionada do Firefox. A navegação por abas permite que você abra
abas, cada uma exibindo uma página diferente, em uma única janela do Firefox. Você pode abrir links em novas
abas em segundo plano, e eles serão carregados enquanto você lê a página exibida.

c) Abrir endereço: posiciona o cursor do teclado no Campo de endereço na Barra de Navegação do Firefox
para que você possa digitar o endereço do site que deseja visitar.
d) Abrir arquivo: exibe a caixa de diálogo Abrir, onde você pode selecionar um arquivo do seu disco local ou rede.
Você pode visualizar vários tipos de arquivos no Firefox, incluindo arquivos HTML/XML, imagens, textos e outros.
e) Fechar: fecha a janela selecionada.
f) Fechar aba: fecha a aba selecionada e seleciona a aba à direita. Este item de menu só será visível se mais de
uma aba estiverem abertas na janela selecionada.
g) Salvar como: salva a página que está sendo exibida. Você pode escolher entre salvar toda a página (completa,
inclusive com imagens), somente a página HTML, ou somente o texto da página.
h) Enviar endereço: abre a janela de composição de emails usando o cliente de emails padrão do seu
computador para que você possa enviar um email com um link para página que está sendo exibida.
i) Configurar página: exibe a caixa de diálogo Configurar página, onde você pode ajustar as configurações de
impressão, tais como margens, cabeçalho e rodapé e orientação da página.
j) Visualizar impressão: mostra como a página exibida ficará quando for impressa. Ela reflete as configurações
ajustadas na caixa de diálogo Configurar página, descrita acima, somadas às configurações da própria página.
k) Imprimir: exibe a caixa de diálogo Imprimir, onde você pode especificar o número de cópias a serem impressas,
etc.
l) Importar: abre o Assistente de importação, que permite que você importe opçõespreferências, favoritos,
histórico, senhas e outros dados de navegadores como o Microsoft Internet Explorer, Netscape, Mozilla ou Opera.
m) Modo offline: alterna entre os modos online e offline. O modo offline permite que você visualize páginas que
você já tenha visitado anteriormente sem a necessidade de estar conectado à internet, mas estas estarão
desatualizadas.
n) Sair: fecha o Mozilla Firefox. Fecha todas as janelas abertas do Firefox, cancelando qualquer download em
andamento. Se você clicar neste item com abas, janelas ou downloads abertos, o Firefox irá perguntar se você
deseja realmente sair para evitar saídas acidentais.
II – Menu Editar
79
CPC - Parte I - Conceitos Básicos
a) Desfazer: desfaz a última ação.
b) Refazer: refaz o último comando desfeito.
c) Recortar: move o objeto selecionado para a área de transferência.
d) Copiar: copia o objeto selecionado para a área de transferência.
e) Colar: cola o conteúdo da área de transferência no ponto de inserção.
f) Excluir: exclui o texto selecionado em um campo de texto.
g) Selecionar tudo: selecionado o conteúdo inteiro da página.
h) Localizar: exibe a barra de ferramentas Localizar na base da janela do Firefox.
i) Localizar próxima: localiza a próxima ocorrência do texto especificado ao usar o comando Localizar.
III – Menu Exibir
a) Barras de ferramentas: mostra ou oculta as barras de ferramentas Navegação (botões padrões), Favoritos e
barras criadas. Além disso, apresenta a subopção Personalizar que permite criar barras de ferramentas, mostrar
ou ocultar botões nas barras e voltar aos botões padrões.
b) Barra de status: mostra ou oculta a barra de status do Mozilla.
c) Painel: exibe os seus favoritos ou o seu histórico. Você sempre pode fechar o Painel clicando no X do seu canto
superior direito.
d) Parar: interrompe a abertura da página que você está visitando.
e) Recarregar: atualiza o conteúdo da página atual.
f) Tamanho do texto: permite modificar (aumentar ou diminuir ou tamanho normal) o tamanho do texto da página.
g) Estilos da página: permite que você selecione um estilo para a página exibida. Por padrão, "Estilos base" é
selecionado, a não ser que o autor da página especifique um estilo diferente.
h) Código-fonte: mostra a página em sua linguagem de criação.

i) Tela inteira: faz com que a página ocupe toda a tela.

IV – Menu Ir
a) Voltar: volta para página anterior a atual
b) Avançar: executa o comando contrário ao voltar.
c) Página inicial: mostra a página definida como Inicial para o Mozilla através do comando Opções do menu
Ferramentas.
d) Histórico: mostra o painel Histórico, que mantém visível o histórico de sites visitados. Os sites podem ser
visualizados em ordem de data, nome do site, últimos visitados e por ordem de mais acessados.
V – Menu Favoritos (mostra os sites adicionados como favoritos)

80
CPC - Parte I - Conceitos Básicos
a) Adicionar página: adiciona a página atual à pasta ou subpasta do Favoritos. Uma caixa de diálogo será
exibida, permitindo escolher um título para o Favorito e especificar a pasta de armazenagem.
b) Adicionar abas: adiciona todas as abas da janela exibida em uma nova pasta dos Favoritos.
c) Organizar: mostra o Gerenciador de Favoritos, uma janela onde você pode organizar os seus Favoritos:
ordená-los, renomeá-los e modificar as suas propriedades, bem como adicionar novos Favoritos e mover ou excluir
os existentes.
VI – Menu Ferramentas
a) Pesquisar na web: posiciona o cursor do teclado no Campo de pesquisa na Barra de Navegação do Firefox
para que você possa digitar os termos que você deseja pesquisar.

b) Ler mensagens: abre o programa de correio eletrônico definido como padrão e com ele sua caixa de entrada
de mensagens.
c) Nova mensagem: abre a janela Nova Mensagem do programa de correio eletrônico definido como padrão,
permitindo criar uma nova mensagem de correio eletrônico.
d) Downloads: abre o Gerenciador de Downloads, onde você pode ver os downloads em andamento e também
os downloads finalizados.
e) Extensões: abre o Gerenciador de Extensões, onde você pode ver todas as extensões instaladas e desinstalar
extensões (pacotes que modificam ou adicionam funcionalidades ao Firefox).
f) Temas: abre o Gerenciador de Temas, permitindo trocar o tema que o Firefox está exibindo e até mesmo
desinstalar temas (pacotes que modificam a aparência do Firefox, mas não modificam ações ou funcionalidades do
Firefox).
g) Console do JavaScript: abre o Console do JavaScript, que rastreia erros nos códigos JavaScript das páginas.
JavaScript é uma linguagem de scripts (script é um programa criado em uma página para permitir uma
interatividade com o usuário, capturando dados fornecidos através de formulários , e ações com os objetos da
página) utilizada com freqüência na construção de páginas da internet.
h) Propriedades da página: exibe diversas informações sobre a página exibida, tais como tipo de documento,
codificação, tamanho e informações de segurança. Também exibe listas de mídias e links disponíveis na página.

i) Limpar dados pessoais: permite apagar o conteúdo da pasta históricos, dados fornecidos em formulários
nomes de usuários e senhas, cookies, cache (pasta de Temporários da Internet no Internet Explorer).

81
CPC - Parte I - Conceitos Básicos
j) Opções
Guia Geral

Opções Gerais
Página inicial Define a página que será aberta automaticamente quando o Mozilla for iniciado
Browser padrão Caso o usuário esteja usando mais de um browser, esta opção faz com que toda vez que for iniciado
o Mozilla seja perguntado ao usuário se ele deseja definir o Mozilla como padrão.
Conexão Definir as configurações da conexão à Internet ou mesmo de um acesso via um Proxy (intercepta
todas as solicitações à internet e verifica se a solicitação poderá ser atendida diretamente do seu
cachê, utilzado para aumentar a performance, filtrar solicitações e ocultar o seu computador na
internet para aumentar a sua segurança).
Guia Privacidade

Opções Privacidade
Histórico Aqui você pode especificar por quanto tempo você quer que o Firefox armazene quais
páginas você visitou (padrão 9 dias)
Formulários Salvar dados fornecidos a formulários e ao campo de pesquisa
Senhas Autocompletar nomes de usuário e senhas. O Firefox pode armazenar as senhas que você
digita em formulários com segurança para facilitar a sua identificação em sites da web.
Lista de downloads O Gerenciador de Download armazena os endereços dos seus downloads recentes. Esta
opção permite apagar a a lista de downloads.
Cookies Cookie é um arquivo criado por um site da internet para armazenar informações no seu
computador e armazenar informações de identificação pessoal (nome, email, endereço
pessoal ou comercial e números telefônicos).
Permissões de Cookies
1. Padrão: aceita todos os cookies, incluindo cookies que permitem que um site identifique
você indeterminadamente.
2. Sites podem definir cookies: permite que os sites visitados armazenem cookies no seu
computador. Se você não quiser que nenhum site armazene cookies no seu computador,
desmarque essa opção. Note que alguns sites poderão não funcionar corretamente quando

82
CPC - Parte I - Conceitos Básicos
os cookies estiverem desativados. Se você quiser que determinados sites possam definir
cookies, abra a janela Exceções de Cookies clicando no botão Permissões.
3. Apenas os que pertencerem ao site visitado: se o Firefox armazenar o cookie de um site,
ele devolverá o cookie somente para este site em particular. O Firefox não fornecerá a um
site cookies armazenados por outro site. Como um site só poderá receber seus próprios
cookies. Algumas vezes um site poderá exibir um conteúdo armazenado em um outro
site (cookies de terceiros ou cookies externos). O outro site, que armazena o conteúdo,
também tem a habilidade de armazenar um cookie no Firefox, mesmo que você não tenha
visitado esse site diretamente.
Validade do cookie
1. Definida pelo cookie: as informações do cookie serão excluídas na data determinada pelo
cookie.
2. Até sair do Firefox: as informações do cookie serão excluídas assim que você reiniciar o
Firefox.
3. Perguntar: exibe um alerta toda vez em que um site tentar armazenar um cookie,
permitindo que você escolha se o cookie será armazenado ou não.
Cache Permite definir o espaço ocupado pela pasta Cache (armazena as páginas visitadas para que
possam ser exibida mais rapidamente na próxima vez que forem visitadas) e apagar o
conteúdo da mesma
Guia Conteúdo

Opções Conteúdo
Bloquear janelas popup Permite habilitar ou desabilitar a exibição de popups.
Alertar se sites tentarem Habilita ou desabilita o Firefox exibir um aviso quando um site tentar instalar uma extensão ou
instalar extensões ou tema e bloqueia a tentativa de instalação
temas
Carregar imagens Habilita ou desabilita a visualização de imagens do site visitado (abrir mais rápido a página).
Permitir Java Habilita ou desabilita os sites visitados de carregarem progamas feitos em Java no computador.
Permitir JavaScript Habilita ou desabilita os sites visitados de carregarem scripts feitos em Java no computador.
Permissões para JavaScript
1. Mover ou redimensionar janelas existentes:
2. Alterar a disposição entre as janelas
3. Desativar ou substituir menus de contexto
4. Ocultar a barra de status
5. Modificar o texto da barra de status
Fontes e cores Permite alterar as cores, fontes, resolução da tela (padrão 96 dpi), cor e dublinhado dos links.

83
CPC - Parte I - Conceitos Básicos
Guia Abas

Opções Abas
Abrir links de outros programas Permite definir se uma página da Internet será aberta em outra janela ou mesmo outra aba.
Forçar links que abrem janelas Permite fazer com que um link que exige a abertura de uma nova janela seja aberto da
a abrir mesma janela ou aba ativa, ou mesmo em outra aba da mesma janela.
Ocultar a barra de abas se Faz com que o Mozilla mostre sempre a barra de abas mesmo que a janela só possua uma
houver apenas uma aba única aba.
Abrir em primeiro plano as abas Quando você clica com o botão do meio do mouse em um link (ou clica em um link
criadas por links segurando a tecla Ctrl), o link é aberto em uma nova aba. Essa aba não será exibida
diretamente; ela será carregada em segundo plano. Marque essa opçã para abrir links em
novas abas em primeiro plano, que serão exibidas diretamente.
Alertar ao fechar múltiplas abas Permite fazer com que o Mozilla peça ou não confirmação quando o usuário fecha uma
janela com várias abas, pois o usuário poderia estar apenas desejando fechar uma aba.
Guia Downloads

Opções Download
Salvar downloads em Perguntar para cada arquivo: o Firefox perguntará onde você quer salvar o arquivo cada
vez que você baixar um arquivo.
Salvar sempre na pasta: o Firefox salva na pasta padrão, que é a Área de trabalho.
Gerenciador de downloads Abrir ao iniciar um download: permite decidir se o Gerenciador de downloads deve ser
exibido quando você inicia um novo download.
Fechar ao concluir todos os downloads: faz com que o Gerenciador de downloads seja
fechado automaticamente quando todos os downloads forem concluídos.
Ações para downloads Permite abrir a janela Ações em downloads, que contém os tipos de arquivos que você já
baixou. Você pode escolher o que o Firefox deve fazer quando você clicar novamente em
um desses tipos de arquivos.
Propriedades da Ação
1. Abrir com o programa padrão: abre o arquivo no programa padrão para esse tipo de
arquivo.
84
CPC - Parte I - Conceitos Básicos
2. Abrir com o programa: especifica outro programa para abrir o arquivo.
3. Salvar no meu computador: salva os arquivos em disco.
4. Usar este plugin: permite que um plugin manipule o tipo de arquivo selecionado.

Guia Avançado

Opções Avançadas
Geral Atualizações Segurança
Acessibilidade Verificar automaticamente se há Protocolos
atualizações para
Texto pode ser selecionado com o verifica automaticamente se há SSL 2.0: especifica se você permite que o
teclado: especifica se o cursor do atualizações disponíveis para o Firefox envie e receba informações
teclado será exibido, permitindo a Firefox em si, extensões e temas e seguras por meio do SSL2 (Secure Sockets
seleção de texto e navegação pelo mecanismos de pesquisa Layer Nível 2)
teclado (F7). instalados, para que você sempre SSL 3.0: especifica se você permite que o
Começar a localizar assim que tenha a versão mais atualizada dos Firefox envie e receba informações seguras
digitar: o Firefox tenta localizar na seus componentes. por meio do SSL3 (Secure Sockets Layer
página exibida qualquer texto que Nível 3)
você digitar no teclado. Enquanto TLS 1.0: especifica se você permite que o
você digita o texto a ser localizado, Firefox envie e receba informações seguras
a Barra de Localizar é por meio do TLS (Transport Layer
automaticamente exibida na base Security).
da janela, exibindo informações
sobre a busca.
Navegação Ao encontrar atualizações do Botões
Firefox
Diminuir imagens até que caibam Perguntar o que fazer: permite Certificados: abre o Gerenciador de
na janela: faz com que as imagens definir manualmente quando e certificados e visualizar os certificados
maiores do que o tamanho da como as atualizações serão armazenados, importar novos certificados
janela sejam automaticamente instaladas. e excluir certificados antigos do Firefox.
redimensionadas para caber na Receber e instalar a atualização Revogações: permtie gerencia as CRLs
janela. automaticamente: as atualizações (Listas de Revogação de Certificados) que
Auto-rolagem: permite rolar a do Firefox serão baixadas garante que os seus certificados não são
página exibida segurando-se o automaticamente e serão inválidos.
botão do meio do mouse e instaladas na próxima vez em que Verificação: o OCSP (Protocolo de Status
movendo o mouse para cima ou o Firefox for iniciado. Online de Certificados) é uma forma de
para baixo. Alertar caso desative extensões ou validar os seus certificados sempre que
Rolagem suave: a página rola temas: determina se a sua eles são exibidos ou utilizados. Este botão
suavemente, permitindo que você confirmação será requerida antes permite ativar a utilização deste protocolo.
veja o quanto a página rolou. Isso da instalação caso alguma Dispositivos. de segurança: permitem
torna mais fácil a continuação de atualização precise desativar uma codificar e decodificar conexões e
uma leitura do ponto que você extensão ou tema incompatível por armazenar certificados e senhas.
estava anteriormente não haver novas versões
compatíveis.
Idiomas Histórico de atualizações Certificados
Dependendo do site permitirá o O Firefox registra automaticamente Quando um site requisitar um certificado:
recurso de escolha de idiomas. as atualizações que você instalar e quando um site solicita uma conexão
esta opção permite obter segura, está opção permitirá que o
informações sobre essas selecione automaticamente o certificado
atualizações apropriado ou que o usuário defina
manualmente um certificado

85
CPC - Parte I - Conceitos Básicos

VII – Menu Janela


a) Minimizar: minimiza a janela ativa
b) Zoom: aumenta ou restaura a janela selecionada.
c) [janelas abertas]: mostra a lista das janelas abertas do Mozilla.

VIII – Menu Ajuda


a)Conteúdo da Ajuda: abre o visualizador da ajuda do Firefox, que mostra informações úteis de como trabalhar
com o Mozilla.
b) Para usuários do Internet Explorer: abre a parte do visualizado da ajuda que faz uma comparação entre como
fazer as ações no Internet e como fazer no Mozilla.
c) Notas da versão: mostra informações sobre instalação, desinstalação e configuração do Firefox, além das
últimas modificações do Firefox.
d) Site não funciona: permite enviar um aviso a equipe do Firefox sobre um site que não funciona corretamente
com o Firefox.
e) Verificar atualizações: verifica se há atualizações disponíveis para o Firefox e quaisquer
extensões e temas que você tiver instalados.
f) Sobre o Mozilla Firefox: exibe uma janela com informações sobre o Firefox, incluindo a versão
atual e uma breve lista de créditos.

17.8. Correio Eletrônico – Microsoft Outlook Express 6.0


Programa que permite enviar e receber mensagens através do computador.
Exemplos: Outlook, Outlook Express e Nestcape Messenger.

17.8.2. Pastas do Outlook Express


1. Rascunho: mensagens que estão sendo redigidas.
2. Caixa de Saída: mensagens que estão sendo enviadas.
3. Itens Enviados: mensagens enviadas.
4. Caixa de Entrada: mensagens recebidas.
5. Itens Excluídos: mensagens apagadas. As mensagens não vão para lixeira.

17.8.3. Botões

1. Criar e-mail : permite criar uma mensagem.

2. Responder ao remetente : permite responder a uma mensagem recebida.

3. Responder a todos : permite responder uma mensagem para todos os usuários que receberam a
mensagem original.

86
CPC - Parte I - Conceitos Básicos

4. Encaminhar : permite enviar uma mensagem recebida ou redigida anteriormente para outro
destinatários de mensagem.

5. Imprimir : permite imprimir uma mensagem.

6. Excluir : permite enviar uma mensagem para pasta Itens excluídos.

7. Endereços : abre o Catálogo de Endereços.

8. Localizar : permite localizar uma mensagem ou pessoa do Catálogo de Endereços.

9. Enviar e receber : permite enviar mensagens pendentes (caixa de saída) e verificar se existem
mensagens recebidas.

17.8.4. Símbolos de Mensagens


1. : mensagem com anexo.
2. : mensagem com alta prioridade.
3. : mensagem com baixa prioridade.
4. : mensagem lida ou marcada como lida.
5. : mensagem não lida ou marcada como não lida.
6. : mensagem com assinatura digital.
7. : mensagem criptografada.
8. : mensagem com sinalização.

1. : permite enviar a mensagem

2. : move o texto selecionado para Área de Transferência.

3. : copia o texto selecionado para Área de Transferência.

4. : cola o conteúdo da Área de Transferência na posição do cursor.

5. : desfaz a última ação feita.

87
CPC - Parte I - Conceitos Básicos

6. : verifica se os endereços digitados nos campos “Para”, “Cc” e “Cco” estão escritos corretamente.
Para tanto, verifica no catálogo de endereços.

7. : verifica se existem erros ortográficos.

8. : permite inserir um arquivo como anexo à mensagem que será enviada.

9. : permite definir a nível de prioridade da mensagem.

10. : permite definir assinatura digital para mensagem.

11. : permite criptografar a mensagem.

12. : permite trabalhar desconectado da Internet (modo off-line).

18. Segurança
18.1. Conceitos
a) Integridade: é a garantia que os dados não foram alterados.
b) Autenticidade: é a garantia que os dados são verdadeiros.
c) Legitimidade: é a garantia que a origem e o destino são verdadeiros.
d) Acesso: possibilidade a consulta a dados de uma rede.
e) Autenticação: é o processo de se confirmar a identidade de um usuário ou um host
f) Violação: é o acesso aos dados por pessoa não autorizada.
g) Comprometimento: é a perda da segurança, ocasionada pelo acesso não-autorizado.
h) Vulnerabilidades: são os pontos fracos na segurança da rede.
i) Confiabilidade: garantia que os dados de uma rede não foram acessados por pessoa não autorizada.
j) Ameaça: é uma possível violação da segurança de um sistema.
k) Ataque: é a materialização de uma ameaça.
l) Cookies: são arquivos enviados pelo site para o computador do usuário para permitir que este visualize
corretamente o site ou mesmo para retirar informações fornecidas pelo usuário. Através de cookies podem ser
enviados programas que registram as ações do usuário na Internet, os chamados spyware.
o cookie persistente é aquele armazenado como arquivo no computador e que permanece nele mesmo quando
você fecha o Internet Explorer. Na próxima vez que você visitar o site, o cookie poderá ser lido pelo site que o
criou.
o cookie temporário ou por sessão é armazenado apenas para a sessão de navegação atual e é excluído do
computador quando o Internet Explorer é fechado.
o cookie primário é aquele criado ou enviado para o site que você está exibindo no momento. Esses cookies
costumam ser usados para armazenar informações, como suas preferências ao visitar o site.
o cookie secundário é aquele criado ou enviado para um site diferente daquele que você está exibindo no
momento. Em geral, os sites secundários fornecem conteúdo no site que você está exibindo. Por exemplo,
muitos sites exibem propagandas de sites secundários e esses sites podem usar cookies. Esse tipo de cookie
costuma ser usado para controlar o uso da sua página da Web para propagandas ou outras finalidades de
marketing. Os cookies secundários podem ser persistentes ou temporários.
o cookies não satisfatórios são cookies que podem permitir acesso a informações pessoais de identificação que
poderiam ser usadas com uma finalidade secundária sem o seu consentimento.
m) Vírus: programa que executa ação não solicitada.
 Vírus de Arquivos: são os agregam-se em arquivos executáveis ou em arquivos requisitados para a
execução de algum programa.
 Vírus de Sistema (Vírus de Boot): infectam os arquivos de inicialização do sistema.
 Vírus Múltiplo: são os que infectam tanto os arquivos de programas como os arquvios de inicialização.
 Vírus de Macro: é um vírus escrito em linguagens de macro ou anexados a macros incluídas em arquivos
de dados. Eles são comuns em arquivos do Word e do Excel.
 Vírus Stealth (Furtivo): virus que utilize técnicas de dissimulação para que sua presença não seja detectada
nem pelos antivírus nem pelos usuários.
 Vírus criptografados: codifica parte de seu código fonte, para evitar sua detecção.
 Vírus mutante: altera o seu código fonte para evitar a sua detecção.
 Vírus polimórfico: semelhante ao mutante, mas cada vez que copia a si mesmo, muda seu código fonte.
n) Worm (Vermes): são programas com alta capacidade de proliferação que são normalmente enviados por correio
eletrônico.
88
CPC - Parte I - Conceitos Básicos
o) Bactéria: é um vírus com alta capacidade de duplicação.
p) Trojan Horse (Cavalo de Tróia): são programas enviados por correio eletrônico, na forma de “jogos” ou
“aplicativos”, que permitem que emissor o Trojan acesse os dados do computador infectado.
q) Anti-vírus: são programas que verificam a presença de vírus, worms e cavalos de tróia e são capazes de
eliminá-los.
r) Span: é o envio de informações de mensagens não-solicitadas por correio eletrônico.
18.2. Tipos de Invasores
 Hacker => usuário não autorizado que invade redes em busca de conhecimento ou para testar os seus
conhecimentos, mas não causa danos ao sistema. Indivíduo com conhecimentos elevados de computação e
segurança, que os utiliza para fins de diversão, interesse, emoção. Em geral, hackers não destroem dados,
possuem um código de ética e não buscam ganhos financeiros.
 Cracker => usuário não autorizado que invade redes, causando danos ao sistema.
 Phreaker => hacker de telefonia.
 Defacers => hacker que invade sites para apagar informações destes sites.
 Banker => hacker especialista em operações fraudulentas bancárias, via Internet.
 Carder => especialista em operações fraudulentas com cartões de crédito.
 War Driver => hacker especialista nas vulnerabilidades das Redes Wireless.
 Lammer => são usuários que estão em estágio inicial de aprendizado para se tornarem hacker.
 Script Kiddie: é o indivíduo que saiu do estágio de lammer mas que só sabe usar as "receitas de bolo"
(programas prontos) e ainda não entende muito bem o que está fazendo.
18.3. Técnicas e Programas utilizados por Hacker e Cracker
 Back door: é um programa escondido, deixado por um intruso, o qual permite futuro acesso à máquina alvo.
 Crack: programa utilizado para quebrar licenças de outros programas. Também pode se referir a programas
utilizados para quebrar senhas.
 Exploit: programas utilizados por hackers e crackers para explorar vulnerabilidades em determinados
sistemas, conseguindo assim, acessos com maior privilégio.
 Flood: sobrecarga (em geral, de pacotes) causada por eventos não esperados que causam lentidão da rede.
 Hijacking: é o assalto de uma sessão, geralmente TCP/IP. O assalto de sessão é uma forma de obter o
controle de uma conexão iniciada por um usuário legítimo. Ao interceptar esta conexão o "hacker" pode
impedir o usuário legítimo de usar o sistema e tomar o seu lugar.
 Sniffer: ferramenta utilizada por hackers e especialistas em segurança e de rede que serve para monitorar e
gravar pacotes que trafegam pela rede, dependendo do sniffer, é possível analisar vários dados dos pacotes,
analisar protocolos, ver dados específicos da camada de aplicação, senhas, etc.
 Spoofing: é uma forma de manter uma conexão com uma máquina se fazendo passar por outra na qual ela
confie.
 Buffer overflow: ocorre quando, ao inserir uma quantidade de dados maior do que o programa está preparado
para tratar ele irá começar a executar instruções que não estão programadas. A partir daí um hacker é capaz
de colocar instruções nos próprios dados que está inserindo, fazendo o computador executá-las.
 Engenharia Social: é uma ação de hacker que visa extrair informações de usuários menos informados, através
do poder de convencimento.
 DoS (negação de serviço): pode ser ocasionado pela exclusão de arquivos necessários ao funcionamento do
sistema por um usuário despreparado ou ser ocasionado por um DDoS que gera uma sobrecarga no sistema
pelo excesso de acessos ao mesmo tempo.
 Phishing: é uma forma de fraude eletrônica, caracterizada por tentativas de adquirir informações sensíveis, tais
como senhas e números de cartão de crédito, ao se fazer passar como uma pessoa confiável ou uma
empresa enviando uma comunicação eletrônica oficial, como um correio ou uma mensagem instantânea. O
termo Phishing surge das cada vez mais sofisticadas artimanhas para "pescar" (fish) as informações sensíveis
dos usuários.
 Pharming : é uma técnica que utiliza o seqüestro ou a “contaminação” do DNS (Domain Name Server) para
levar os usuários a um site falso, alterando o DNS do site de destino. O sistema também pode redirecionar os
usuários para sites autênticos através de proxies controlados pelos phishers, que podem ser usados para
monitorar e interceptar a digitação. Os sites falsificados coletam números de cartões de crédito, nomes de
contas, senhas e números de documentos. Isso é feito através da exibição de um pop-up para roubar a
informação antes de levar o usuário ao site real. O programa mal-intencionado usa um certificado auto-
assinado para fingir a autenticação e induzir o usuário a acreditar nele o bastante para inserir seus dados
pessoais no site falsificado. Outra forma de enganar o usuário é sobrepor a barra de endereço e status de
navegador para induzi-lo a pensar que está no site legítimo e inserir suas informações.
 Vishing (voice phishing): é um dos mais novos métodos para obter informações pessoais. Dá-se na forma de
e-mails aparentando vir do eBay, PayPal e serviços similares dizendo sobre um provável problema em suas
contas e pedindo que liguem para o número indicado no objetivo de confirmar tais dados. Dessa forma,
89
CPC - Parte I - Conceitos Básicos
atacantes obtém número e senhas de cartões de créditos e estão livres para fazerem o que quiserem. Há
também formas de ataque onde chamadas telefônicas são realizadas diretamente à vítima pedindo
informações sobre o código de segurança do cartão de crédito.
 Spyware: é um programa enviado na forma de cookies com o intuito de capturar informações pessoais do
usuário.
 Addware: programa para instalar propagandas no computador infectado.
18.4. Mecanismos de Segurança
a) Esteganografia: é o processo de esconder informações, que serão mostradas novamente através de comandos
específicos.
b) Criptografia: é o método de codificar uma mensagem, para garantir a segurança das mesmas.
a) Criptografia de chaves simétricas: esse método, conhecido também como criptografia tradicional, funciona bem
em aplicações limitadas, onde o remetente e o destinatário se preparam antecipadamente para o uso da
chave. Para que esse método funcione, todas as pessoas envolvidas devem conhecer a chave, pois quando
uma mensagem criptografada chega a caixa de entrada, ela só pode ser aberta por quem possui a chave. São
utilizados algoritmos como DES, RC e IDEA
b) Criptografia de chaves assimétricas: A criptografia de chave pública ou criptografia assimétrica, foi criada em
1970. Esse método funciona com uma chave para criptografar, e outra para descriptografar a mesma
mensagem. No sistema de chave pública, cada pessoa tem que ter duas chaves, uma que fica publicamente
disponível, e outra, que deve ser mantida em segredo. O algoritmo que se mantém até hoje é o RSA.
c) Firewall: é o sistema de segurança que impede o acesso de usuários não autorizados.
d) Roteador com Triagem (Screening Router): essa é a maneira mais simples de se implementar um Firewall, pois
o filtro, apesar de ser de difícil elaboração, é rápido de se implementar e seu custo é zero, entretanto, se as
regras do roteador forem quebradas, a rede da empresa ficará totalmente vulnerável. Neste método é
colocado um roteador entre as redes que verifica as regras definidas e caso os pacotes enviados não
cumpram estas regras, não entram na rede
e) Gateway de Base Dupla (Dual Homed Gateway): é posto uma única máquina com duas interfaces de rede
entre as duas redes (a Internet e a rede da empresa). Quase sempre, esse Gateway, chamado de Bastion
Host conta com um Proxy de circuito para autenticar o acesso da rede da empresa para a internet e filtrar o
acesso da Internet contra a rede da empresa. Como na arquitetura anterior, se o Proxy for quebrado, a rede
da empresa ficará totalmente vulnerável.
f) Gateway Host com Triagem (Screened Host Gateway): Roteador e Gateway são usados conjuntamente em
uma arquitetura, formando assim, duas camadas de proteção. A primeira camada, é a rede externa, que está
interligada com a Internet através do roteador, nesta camada a rede só conta com o "filtro de pacotes" que
está implementado no roteador e tem como finalidade aceitar ou bloquear pacotes de rede seguindo as regras
definidas pela política administrativa da empresa. A segunda camada, é a rede interna, e quem limita os
acessos neste ponto é um Bastion Host com um Proxy Firewall, pois nele, temos um outro filtro de pacotes
além de mecanismos de autenticação da própria rede interna.
g) IDS (Sistema de detecção de Intruso): programa que verifica a presença de usuários não autorizados na rede.
h) Honey Pot: é mecanismo de segurança onde a rede utiliza um computador como servidor fictício onde o
invasor acreditar ter invadido a rede.
i) VPN (Rede Virtual Privada): são ligações feitas entre Intranets (Redes Locais que utilizam a arquitetura
TCP/IP), utilizando como meio de comunicação a Internet e utilizando como meio de segurança firewall nas
pontas das Intranets. Além disso, os dados são mandados de forma criptografada.

Internet

VPN
Intranet Intranet
(Matriz) Dados Criptografados (Filial)

Firewall

90
Parte I - Conceitos Básicos – Professor Luis Octavio
CPC - Parte II – Análise e Projetos de Sistemas
Capítulo I - Análise e Projetos Estruturados

1. Princípios Gerais de Sistemas


1. A especialização de um sistema acarreta uma dificuldade para adaptação a uma circunstância diferente.
2. A dimensão de um Sistema está diretamente ligada à necessidade de recursos para sua manutenção.
3. Um sistema sempre fará parte de um maior e sempre poderá ser dividido em sistemas menores.
4. Os sistemas são dinâmicos e tendem a crescer.

2. Ferramentas da Análise Estruturada (Modelagem)

2.1. Diagrama de Fluxo de Dados (Diagrama de Bolhas ou Modelo Funcional)


É a ferramenta de modelagem que descreve as funções que o sistema executa, mostrando as
transformações de entradas em saídas do sistema.
a) Componentes:
1. Processos (Bolha, Função ou Transformação)
1. Mostram as funções que o sistema executa.
2. São representados por círculos ou bolhas (retângulos de vértices curvos)

Verificar Verificar
Alunos Alunos
3. Fluxos
4. Mostram os dados necessários para os processos e as informações geradas pelos mesmos.
5. São representados por setas direcionadas (vetores).
6. Nomes compostos interligados por hífen.
Endereço do Aluno
7. Depósito de Dados (Arquivo)
8. Locais onde são armazenados informações necessárias ao sistema.
9. Representados por linhas paralelas ou apenas uma linha.
Cadastro de Aluno Cadastro de Aluno

10. Terminadores (Fonte ou Destino)


11. São as entidades externas que interligam com o sistema.
12. Representados por retângulos.

Usuários
Obs: Para Tom DeMarco iniciar a construção pelos Fluxos é um procedimento Top-Down (o mais aconselhável),
enquanto que iniciar pelos Processos seria Bottom-Up.

b) DFD em Níveis:
13. Diagrama de Contexto: é o nível mais alto do DFD. É formado por uma única bolha (nome do sistema ou
área de estudo), fluxos e terminadores externos.
14. Figura 0 ou Diagrama 0: mostra as funções principais do sistema.
15. Figura 1, 2, ,3, ... ou Diagrama 1, 2, ,3, ...: é o desmembramento de uma função (Processo) do diagrama 0
em subfunções.
Obs: quando um processo não podem ser subdivido é chamado de Primitivos Funcionais.

2.2. Dicionário de Dados


Segundo Yourdon “É a listagem organizada de todos os elementos pertinentes ao sistema”
a) Elementos de Dados Elementares
16. São os que não apresentam decomposição significativa.
17. São apresentados por um comentário explicativo, feito entre sinais de “*”. No caso de serem auto-
explicativos, normalmente se utiliza o duplo “**” e os seus valores entre “*”.
b) Elementos de Dados Opcionais
18. São os que podem ou não aparecer como composição de um Elemento de Dados.
19. São apresentados entre parênteses “( )”.
c) Iteração
Professor Luis Octavio - 1
CPC - Parte II – Análise e Projetos de Sistemas
20. Indica a ocorrência repetida de um componente de um elemento de dados, variando de zero a várias
ocorrências. .
21. Aparecem entre chaves “{ }”.
22. Para informar os limites de ocorrências, devemos expressar através de uma das duas formas, abaixo:

LI {ELEMENTO} LS ou LS ELEMENTO
LI
LI = limite inferior, ou seja, quantidade
EW mínima de ocorrências.
LS = limite superior, ou seja, quantidade máxima de ocorrências.
d) Seleção
23. Indica que o elemento de dados é uma das opções mostradas.
24. Aparecem entre colchetes “[ ]”.
25. As opções são separadas pela barra vertical “|”.
26. Sintaxe: elemento = [opçãoA|opçãoB|opçãoC]
e) Sinônimos (Cognomes)
27. É um nome alternativo para um elemento de dados.
28. Sintaxe: elemento = *sinônimo*
29. Obs: Tom DeMarco não utiliza “**”.
F) Entrada por Classes
30. Fluxo de Dados:
31. Nome
32. Cognome
33. Composição
34. Notas: outras informações
35. Arquivo (Depósito):
36. Nome
37. Cognome
38. Composição
39. Organização: tipo de acesso (direto ou seqüencial) e o elemento pelo qual o arquivo esta
organizado.
40. Notas
Processo:
41. Nome
42. Número
43. Descrição: mostra o procedimento do Processo
44. Notas
2.3. Tabela de Decisão
É uma ferramenta que apresenta várias ações diferentes possíveis para um conjunto de condições
combinadas e apresentada na forma tabular.
Segundo Tom DeMarco:

“É a listagem organizada de todos os elementos pertinentes ao sistema”


Tabela de Decisão de Relacionamento

Número de 1 2 3 4 5 6 7 8
Regras Servidor Público VV V V F F F F
Autônomo F F F F V V V V
Salário Alto V V F F V V F F
Condiçõe Salário Médio F F V V F F V V
s Ama a pretendente V F V F V F V F
Gosta da pretendente F V F V F V F V
Casar
Noivar
Ações Namorar
Ficar

Regras
Professor Luis Octavio - 2
CPC - Parte II – Análise e Projetos de Sistemas
Regra é a ação que é tomada a partir dos resultados de um conjunto de condições.
No caso mostrado temos três grupos de variáveis: Tipo de Trabalhador, Salário e Sentimento. Para cada
variável, nesse caso, atribuímos dois valores, que são mostrados abaixo:
Autônomo
Trabalho

Servidor
Público
Alto
Salário
Médio

Sentimento
Ama

Gosta
Para calcularmos a quantidade de regras, basta multiplicar a quantidade de valores possíveis para cada
variável, ou seja, 2 X 2 X 2 = 8 regras.

2.4. Árvore de Decisão (Diagrama de Warnier)


É uma ferramenta gráfica utilizada para representar uma tabela de decisão.
Ama
Casar
Pretendente
Salário Alto
Gosta da
Servidor Noivar
Pretendente
Público
Ama
Noivar
Pretendente
Salário Baixo
Gosta da
Árvore de Namorar
Pretendente
Sentimento
Ama
Casar
Pretendente
Salário Alto
Gosta da
Noivar
Pretendente
Autônomo
Ama
Namorar
Pretendente
Salário Baixo
Gosta da
Ficar
Pretendente
2.5. Diagrama HIPO (HierarchicEntrada, Processo e Saída Hierárquica)
É uma ferramenta que demonstra as funções executadas por um sistema e permite a decomposição de uma
função em subfunções.

Professor Luis Octavio - 3


CPC - Parte II – Análise e Projetos de Sistemas

3. Metodologias
3.1. Metodologia Top-Down
É a metodologia que mostra a função geral do sistema e decompõe em subfunções.
É dividida em duas partes:
1. Definir um Projeto Inicial com os processos e dados.
2. Definir detalhadamente os processos e os dados:
1. Processo de Decomposição: divide o problema em problemas menores.
2. Processo de Montagem: define os componentes do programa.

3.2. Metodologia de Jackson


É um refinamento da Metodologia Top-Down, onde as etapas do projeto são bem especificadas, apresentando
técnicas gráficas de diagramação e métodos de avaliação.
Essa metodologia é fundamentada da análise da estrutura de dados, ou seja é orientada a dados e possui
uma visão estática. Enquanto isso, a metodologia do projeto estruturado se baseia na análise do fluxo de dados,
ou seja é orientada para processos e possui visão dinâmica.

3.3. Metodologia de Warnier-Orr


É uma metodologia Top-Down que se baseia na teoria dos conjuntos para descrever projetos de programas.
Cada conjunto é uma coleção ordenada de objetos que compartilham uma ou mais características comuns. Os
elementos do conjunto são apresentados em uma chave e dispostos na vertical.
A diferença dessa metodologia da metodologia de Jakson, é que ela produz a estrutura do programa e a
estrutura de dados a partir das estruturas de dados de saída. Enquanto isso, a metodologia de Jackson combina
as estruturas de dados de entrada e saída para formar a estrutura do programa.

4. Projeto Estruturado

4.1. Definição
É o desenvolvimento de um plano para a solução de um problema, através de um sistema de computação,
tendo os mesmos componentes que os problema original.

4.2. Ciclo de Vida do Projeto


a) Levantamento (Estudo de Viabilidade).
3. Começa quando um usuário solicita que uma ou mais partes de sua atividade sejam automatizadas.
4. Objetivos:
5. Identificar os usuários responsáveis e desenvolver um escopo inicial do sistema (Entrevista e
Diagrama de Contexto).
6. Identificar as atuais deficiências no ambiente do usuário (lista das funções que estão faltando ou são
insatisfatórias).
7. Estabelecer metas e objetivos para um novo sistema (lista das funções que serão reimplementadas,
novas funções e critérios de desempenho do novo sistema).
8. Verificar a viabilidade de automatizar o sistema (estimativas de tempo, recursos e benefícios).
9. Preparar uma previsão do projeto que será utilizada para conduzir o restante do projeto (definir o
gerente do projeto).
10. Características:
11. Ocupa de 5 a 10% de tempo e recursos.
12. Não é necessária a presença do Analista de Sistemas.

b) Análise de Sistemas.
13. Transforma as suas duas principais entradas, critério do usuário e previsão do projeto, em uma
especificação estruturada..
14. Conteúdo:
15. Modelagem do ambiente com DFD.
16. Diagrama de Entidade-Relacionamento (E-R)
17. Outras ferramentas.

c) Projeto.
18. Aloca partes da especificação aos processadores apropriados e as tarefas apropriadas no interior de cada
processador.
19. Criar um modelo de Implementação.
Professor Luis Octavio - 4
CPC - Parte II – Análise e Projetos de Sistemas

d) Implementação.
20. Codificação e integração de módulos em um resumo progressivamente mais completo do sistema final.
21. Conteúdo:
22. Programação Estruturada.
23. Implementação Top-Down
24. Outras ferramentas.
25. Normalmente não tem a participação do Analista de Sistemas.

e) Geração de Teste de Aceitação: criação de Testes de Aceitação a partir da especificação estruturada.

f) Controle de Qualidade (Teste Final ou Teste de Aceitação)

g) Descrição dos Procedimentos: criação de uma descrição formal das partes do novo sistema (manual do
usuário) e a descrição de como os usuários vão interagir com a parte automatizada do sistema.

h) conversão em Banco de Dados

g) Instalação

4.3. Caixas Pretas


São segmentações de um sistema complexo.
4.3.1. Vantagens
1. Fácil construção.
2. Facilmente testadas.
3. Facilmente corrigidas
4. Facilmente entendidas
5. Facilmente modificadas
4.3.2. Metas que devem ser atendidas pela Segmentação
1. Cada caixa deve elucidar uma parte bem definida do problema.
2. Qualquer conexão entre as caixas deve ser estabelecida, somente em virtude da seqüência lógica dada
pelos segmentos.
3. A função de cada caixa deve ser facilmente compreendida.
4. Deve garantir que as conexões entre as caixas sejam tão simples e independentes quanto possível.

4.4. Diagrama de Estrutura


É a ferramenta gráfica utilizada no projeto estruturado que ilustra a segmentação de um sistema em módulos
(caixas pretas) mostrando sua hierarquia, organização e comunicação.
4.4.1. Módulos
São coleções de instruções de programa que possuem as seguintes instruções: entrada e saída, função,
lógica, dados internos e nome.
É representado por um retângulo com o nome. Se o módulo possuir linhas internas e paralelas as linhas
verticais significam que são módulos que não terão que ser escritos porque já existem em sistemas ou bibliotecas
(módulos pré-definidos).
4.4.1. Conexões entre módulos
É como um módulo chama outro. O símbolo é uma seta que aponta do chamador para o chamado.
4.4.2. Comunicação entre módulos
A ligação de dados é expressa por uma bola com uma flecha e as ligações de controle (flags) que fazem
verificação para trazer o dado correto são representadas por bolas escuras com flechas.

4.5. Acoplamento
É o grau de independência dos módulos. Quanto mais baixo a grau de acoplamento mais bem particionado o
sistema será. Para se alcançar esse baixo grau de acoplamento temos três maneiras:
1. Eliminar relações desnecessárias.
2. Reduzir o número de relações necessárias.
3. Enfraquecer a dependência das relações necessárias.

4.5.1. Acoplamento de Dados


Acontece quando a comunicação entre os módulos acontece por parâmetros.
4.5.2. Acoplamento de Imagens
Professor Luis Octavio - 5
CPC - Parte II – Análise e Projetos de Sistemas
Acontece quando dois módulos se referem à mesma estrutura de dados.
4.5.3. Acoplamento de Controle
Acontece quando de um módulo para outro existe um grupo de dados destinados a controlar a lógica interna
do outro.
4.5.4. Acoplamento Comum
Acontece quando dois módulos se referem à mesma área de dados.
4.5.5. Acoplamento de Conteúdo (Patológico)
Acontece quando um módulo faz referência ao interior do outro.

4.6. Coesão
É como as atividades de um módulo estão relacionadas uma com as outras. É a medida da intensidade
funcional dos elementos dos elementos de um módulo.
+ -

coesão acoplamento

- +

Melhor Manutenibilidade

Funcional

Sequencial
Comunicacional

Procedural
Temporal

Lógica
Coincidental Pior Manutenibilidade

4.6.1. Coesão Funcional


Acontece quando o módulo contém elementos que contribuem para a execução de uma e apenas uma tarefa
relacionada ao problema.
4.6.2. Coesão Seqüencial
Acontece quando os elementos estão envolvidos em atividades onde os dados de saída de uma atividade
servem como dados de entrada para o próximo.
4.6.3. Coesão Comunicacional
Acontece quando os elementos contribuem para atividades que usem a mesma entrada ou a mesma saída.
4.6.4. Coesão Procedural
Acontece quando os elementos estão envolvidos em atividades diferentes e possivelmente não relacionados,
nas quais o controle flui de uma atividade para outra.
4.6.5. Coesão Temporal
Acontece quando os elementos contribuem para as atividades da mesma categoria geral, onde a atividade ou
as atividades a serem executadas são selecionadas fora do módulo.
4.6.6. Coesão Coincidental
Acontece quando os elementos contribuem para atividades sem relação significativa entre si.

4.7. Organização de Sistemas Modulares

4.7.1. Factoring
É a separação de uma função contida em um módulo na forma codificada para um novo módulo próprio.

4.7.2. Tipos de Módulos


1. Aferente: quando o próprio módulo envia informação de baixo para cima, ou seja, para seu chefe superior.
2. Eferente: quando o módulo envia informação de cima para baixo, ou seja para seu subordinado.
Professor Luis Octavio - 6
CPC - Parte II – Análise e Projetos de Sistemas
3. Transformador: quando o módulo recebe informação de seu superior e transforma a informação,
enviando-a de volta.
4. Coordenador: quando o módulo coordena a comunicação de seus subordinados.

4.8. Métodos de aperfeiçoamento de Projetos

4.8.1. Tamanho do Módulo


Um bom tamanho de módulo seria o de meia página (30 linhas).
Obs: Hat significa que um módulo inferior, não é na verdade um módulo e sim linhas de codificação que estão
contidas no módulo superior.

4.8.2. Fan-Out
É a quantidade de subordinados imediatos que um módulo possui. A quantidade de subordinados ideal seria
de sete.

4.8.3. Fan-In
É a quantidade de superiores imediatos que um módulo possui.

5. Estratégias de Teste
Uma estratégia de teste integra técnicas de projeto de casos de teste numa série bem-definida de passos que
resultam na construção bem-sucedida de software. As estratégias de teste devem conter planejamento de teste,
projeto de casos de teste, execução de testes e coleta e avaliação de dados.
5.1. Teste de Unidade
É o teste que se aplica ao módulo. Os testes que compõe o teste de unidade são:
1. Interface: garante que as informações fluem para dentro e fora da unidade de programa que se encontra
sob teste.
2. Estrutura de Dados: garante que os dados armazenados temporariamente mantêm sua integridade durante
todos os passos de execução de um algoritmo.
3. Condições de Limite: garante que o módulo opera adequadamente nos limites estabelecidos para
demarcarem ou restringirem o processamento.
4. Caminhos Independentes: garante que todas as instruções de um módulo foram executadas pelo menos
uma vez.
5. Caminhos de tratamento de erros: garante que o processamento será reorientado ou terminado de forma
clara quando um erro ocorrer (abordagem antibugging).
5.2. Teste de Integração
Enquanto o teste de unidade verifica os módulos separadamente, o teste de integração verifica os módulos
trabalhando em conjunto. O teste de integração é uma técnica sistemática para a construção da estrutura do
programa. O teste de integração pode ser feito com o objetivo da integração não-incremental, onde os módulos
são combinados antecipadamente. Nesse caso, o programa completo é testado como um todo e com isso um
conjunto de erros é encontrado. A dificuldade é isolar as causas em conseqüência da vasta amplitude do
programa. Outra forma de aplicar o teste de integração é a integração incremental, onde o programa é construído e
testado em pequenos segmentos, onde os erros são mais fáceis de ser isolados e corrigidos.
Estratégias de Integração Incremental:
a) Integração top-down
Nela os módulos são integrados movimentando-se de cima para baixo através da hierarquia de controle,
iniciando-se do módulo de controle principal e posteriormente os módulos subordinados são incorporados de
maneira depth-first (primeiramente pela profundidade) ou breadth-first (primeiramente pela largura).
Passos para integração top-down:
1º) O módulo de controle principal é usado como um driver (programa principal que aceita dados de caso de
teste, passa tais dados para o módulo a ser testado e imprime os dados relevantes) de teste e os stubs
(substituem módulos que estejam subordinados módulo testado, ou seja, são programas simulados) são
substituídos para todos os módulos diretamente subordinados ao módulo de controle principal.
2º) É escolhido o método depth-first ou o breadth-first e os stubs subordinados são substituídos, um de cada
vez, por módulos reais.
3º) Testes são realizados à medida que cada módulo é integrado.
4º) Durante a conclusão de cada conjunto de testes, outro stub é substituído pelo módulo real.
5º) Teste de regressão – realização de todos ou alguns dos testes anteriores – pode ser realizado a fim de
garantir que novos erros não tenham sido introduzidos.

Professor Luis Octavio - 7


CPC - Parte II – Análise e Projetos de Sistemas
A principal desvantagem dessa integração é a necessidade de stubs e as dificuldades de teste resultantes que
podem estar associados a eles. Em compensação essa integração permite que sejam testadas rapidamente as
principais funções de controle.
b) Integração bottom-up
Nela os módulos atômicos (níveis mais baixos) são primeiramente construídos e testados.
Passos para integração bottom-up:
1º) Módulos de baixo nível são combinados em clusters que executam uma subfunção de software específica.
2º) Um driver é escrito para coordenar a entrada e saída do caso de teste.
3º) O cluster é testado.
4º) Os drivers são removidos e os clusters são combinados ao se dirigir para cima na estrutura de programa.
A principal desvantagem dessa integração é que o programa não existe como entidade até que o último
módulo seja adicionado. Em contrapartida, essa integração propicia um projeto de caso mais fácil e não apresenta
stubs.
5.3. Teste de Validação
Esse teste verifica se o software funciona de maneira razoável em relação as expectativas do cliente. Essas
expectativas são definidas na Especificação de Requisitos de Software, que é um documento que descreve todos
os atributos do software visíveis ao usuário.
Na validação um plano de teste esboça as classes de testes a serem realizadas e um procedimento de teste
define os casos de teste específicos que serão utilizados para demonstrar a conformidade com os requisitos.
A revisão de configuração (auditoria) é um elemento indispensável à validação. Essa revisão garante que
todos os elementos da configuração do software tenham sido adequadamente desenvolvidos, estão catalogados e
têm os detalhes necessários para apoiar a fase de manutenção.
Um recurso utilizado no teste de validação é a utilização dos chamados testes alfa e beta. O teste alfa é uma
simulação do software feita no ambiente do desenvolvedor onde o usuário testa o software e o desenvolvedor
verifica erros no mesmo. O teste beta é uma simulação do software feita no ambiente do usuário, que verifica os
erros e os comunica, em tempos regulares, ao desenvolvedor.
5.4. Teste de Sistema
Esse teste faz a integração do software com outros elementos do sistema, como por exemplo, entidades
externas, novo hardware e informações.
a) Teste de Recuperação
É o teste que faz com que o software falhe de diversas maneiras e verifica se a recuperação é
adequadamente executada. A recuperação pode ser automática, ou seja, feita pelo próprio sistema. Nesse caso, a
reinicialização, mecanismos de checkpointing, recuperação de dados e reinicio são avaliados quanto à
concretitude. A recuperação também pode ser feita com a intervenção humana e nesse caso o tempo até o reparo
é avaliado e é determinado se esse tempo encontra-se dentro de limites aceitáveis.
b) Teste de Segurança
É o teste que verifica se todos os mecanismos de proteção embutidos no software são realmente eficazes,
impedindo acessos indevidos.
c) Teste de Estresse
É o teste que confronta os programas com situações não esperadas.
d) Teste de Desempenho
Ele testa o desempenho de run-time do software dentro do contexto de um sistema integrado. O teste de
desempenho é realizado em todos os níveis de testes vistos anteriormente.
5.5 Depuração
É o processo de remover os erros detectados pelos testes estudados anteriormente.
A depuração segue os seguintes passos:
1º) Execução de um caso de teste e avaliação dos resultados.
2º) Verificação da correspondência entre sintoma e causa.
3º) Nessa etapa podem ocorrer duas situações: a primeira a causa será encontrada, corrigida e removida; a
segunda a causa não é identificada então o depurador define causas suspeitas, aplica testes adicionais e trabalha
na direção da correção do erro.
Categorias de abordagens à depuração:
1. Força Bruta: nela listagens de memória são feitas, traços de run-time são examinados e são inseridas
instruções WRITE. A partir das informações geradas tenta-se descobrir uma pista que possa levar à causa
de um erro.
2. Backtracking: nela o código-fonte é rastreado, no local onde o sintoma foi descoberto, para trás até que o
local da causa seja encontrado.
3. Eliminação da Causa: nela os dados relacionados à ocorrência de erros são organizados para isolar
causas em potencial, uma hipótese de causa é imaginada e os dados acima são usados para provar ou
refutar a hipótese. Outra forma de desenvolver essa abordagem seria criar uma lista de todas as causas
Professor Luis Octavio - 8
CPC - Parte II – Análise e Projetos de Sistemas
possíveis, depois realizar testes para eliminar cada uma das causas, se os testes indicarem que uma
hipótese de causa possui possibilidades, os dados são refinados com a função de isolar o problema (bug).

6. Projeto de Interfaces Homem-Máquina


À medida que os sistemas computacionais foram evoluindo e conquistando um número cada vez
maior de usuários, os aspectos de interface com o usuário passaram a assumir um papel de fundamental
importância na construção de softwares.
Os computadores pessoais, que apareceram no final dos anos 70, são um exemplo típico desta
evolução. Basta olhar a forma como evoluiu a interface de seu sistema operacional, do DOS, em sua versão
baseada em linguagens de comando, passando pela construção de uma interface gráfica executando sobre o
DOS (o Windows) até chegar, nos dias atuais, ao Windows 95, um sistema inerentemente gráfico que permite
ao usuário manipular todos os objetos e eventos de seu sistema através de ícones e movimentos e ações
com o mouse. O uso do teclado, num tal sistema, restringe-se à digitação de nomes de arquivos e poucos
parâmetros de configuração.
Esta evolução tem sido uma conseqüência, por um lado, da evolução do hardware dos computadores
e, por outro lado, da necessidade em eliminar o "terror tecnológico" criado graças à existência de interfaces
de difícil aprendizado, complexas no uso e totalmente frustantes em boa parte dos casos.
6.1. Os fatores humanos
Isto faz com que o projeto das interfaces homem-máquina deixe de ser visto como mais uma
componente do projeto do software como um todo, mas que passe a ser considerada uma atividade onde
uma série de fatores técnicos e, principalmente, humanos sejam levados em conta de modo a que o usuário
possa explorar completamente, e da forma mais amigável possível, as potencialidades do software.
O projetista de interfaces homem-máquina deve conhecer alguns conceitos que serão fundamentais
para o encaminhamento de suas atividades:

• o mecanismo da percepção humana, particularmente com relação aos sentidos de visão, audição
e de tato, exprimem a capacidade do ser humano em adquirir, armazenar e utilizar as informações;
na maior parte das operações realizadas num computador, o usuário faz uso dos olhos e do cérebro
para o processamento das informações, sendo capaz de diferenciar os diferentes tipos de
informação segundo diversos parâmetros visuais (a cor, a forma, as dimensões, etc...); a leitura é
um outro processo importante na comunicação usuário-software, apesar da grande tendência em se
utilizar recursos gráficos nas interfaces homem-máquina;
• os diferentes níveis de habilidades das pessoas são um outro aspecto de importância no projeto
de uma interface de software; o projetista deve ter a preocupação de dirigir a interface para o
usuário típico do software; uma interface que seja orientada e adequada ao uso por um engenheiro
pode representar grandes dificuldades de utilização por parte de um trabalhador inexperiente; no
caso de softwares de aplicação vertical (destinados a áreas de aplicação específicas), é importante
que a linguagem utilizada suporte termos e conceitos próprios da área;
• as tarefas a realizar com a introdução do software são, em grande parte dos casos, as mesmas
que eram realizadas no sistema não-automatizado; a introdução do software para automatizar um
sistema raramente viabiliza a realização de novas tarefas, mas permite que as tarefas antes
realizadas manualmente possam vir a ser realizadas de forma mais eficiente e menos dispendiosa;
em muitos casos, o software assume tarefas que eram realizadas manualmente; sendo assim, as
tarefas essenciais do sistema deve ser um outro aspecto a ser considerado no projeto da interface.
6.2. Aspectos dos projetos de interface

6.2.1. Os diferentes modelos utilizados no projeto


Dado que as interfaces homem-máquina vão envolver diferentes elementos do sistema computacional
(pelo menos o software e pessoas), o projetista deve manipular diferentes modelos para obter um resultado
em termos de interface que seja compatível com os fatores técnicos e humanos desejados.
Um primeiro modelo a ser definido e utilizado pelo projetista é o modelo de projeto, que está
relacionado à representação de todos os aspectos do software (procedimentos, arquitetura, dados, etc...).
Um outro modelo a ser desenvolvido pelo projetista é um modelo de usuário, o qual permite
descrever o perfil típico do usuário do software. Parâmetros como idade, sexo, formação, motivação,
capacidades físicas, personalidade, etc..., são levados em conta na construção deste modelo. Além destas

Professor Luis Octavio - 9


CPC - Parte II – Análise e Projetos de Sistemas
características, o grau de experiência e de utilização de um software pode intervir, o que permite classificar os
usuários em principiantes, instruídos e intermitentes e instruídos e freqüentes. A localização nesta
classificação corresponde ao grau de conhecimento semântico (o conhecimento das funções básicas relativas
à aplicação) e conhecimento sintático (a forma de interação com o software) apresentado pelo usuário.
A percepção do sistema corresponde a um modelo estabelecido pelo usuário que representa a sua
visão do que será o software. Neste modelo, o usuário descreve como ele pensa que deverá ser a sua
interação com o software: os objetos da aplicação que ele considera importantes (e que devem, portanto, ser
ressaltados), as operações que ele desejará realizar sobre os objetos do sistema, como ele pretende
visualizar estes objetos na interface do software, etc...
A imagem do sistema é uma representação do implementador do que o software vai oferecer como
interface e todo o material de apoio à utilização (manuais, videotapes, livros, etc...). A coincidência entre a
percepção do sistema e a imagem do sistema não é um acontecimento óbvio, mas quanto mais próximos
estiverem estes modelos, mais chances se terá de projetar uma interface que venha satisfazer aos anseios
de seus usuários e que viabilize a utilização efetiva do software.
O trabalho do projetista é o de definir os aspectos de interface à luz dos modelos produzidos,
procurando harmonizar os desejos dos usuários com as limitações impostas pelas técnicas e ferramentas
disponíveis e pelos critérios de projeto do software.

6.2.2. Análise e Modelagem de Tarefa


Como se pôde verificar nas discussões relativas ao projeto num contexto mais geral, as atividades de
síntese (no caso, as atividades de projeto) são antecedidas por atividades de análise (no caso, a análise de
requisitos).
Ainda, como já foi citado, os softwares são introduzidos nos sistemas como forma de automatizar um
conjunto de tarefas que vêm sendo realizadas de forma inadequada ou ineficiente (ou utilizando
equipamentos obsoletos ou realizados artesanalmente). Sendo assim, uma análise do conjunto destas tarefas
é primordial ao projeto da interface.
O objetivo desta análise é viabilizar um mapeamento da interface não necessariamente idêntico, mas
próximo do conjunto de tarefas que vem sendo realizado pelos profissionais envolvidos na operação do
sistema (e que serão os usuários finais do software).
O processo de análise das tarefas é normalmente conduzido segundo uma abordagem por
refinamentos sucessivos. O projetista identifica as principais tarefas executadas no contexto da aplicação,
sendo que cada tarefa pode ser, eventualmente, refinada em duas ou mais subtarefas.
A partir desta identificação e refinamento das tarefas, o projeto da interface pode ser encaminhado,
observando-se os seguintes passos iniciais:

• estabelecimento dos objetivos de cada tarefa;


• definição da seqüência de ações necessárias para cada tarefa;
• especificar como as ações de cada tarefa estarão acessíveis a nível de interface;
• indicar o aspecto visual da interface para cada acesso a uma ação da seqüência especificada
(estado do sistema);
• definir os mecanismos disponíveis para que o usuário possa alterar o estado do sistema;
• especificar o efeito de cada mecanismo de controle no estado do sistema;
• indicar o significado de cada estado do sistema (que informações deverão ser oferecidas pela
interface em cada estado).

6.2.3. Parâmetros de Projeto


Durante o desenvolvimento de uma interface, existem alguns parâmetros visíveis pelo usuário que
devem fazer parte das preocupações do projetista:

• o tempo de resposta é um parâmetro que, se mal definido (ou omitido num projeto) pode conduzir
a resultados frustantes a despeito do cuidado com o qual tenham sido tratados outros fatores; o
tempo de resposta a comandos do usuário não tem de ser necessariamente o mais curto possível;
em muitas aplicações, pode ser interessante se ter um tempo de resposta mai elevado (sem que o
usuário venha a se aborrecer de esperar), de forma a permitir que o usuário reflita sobre as
operações que está realizando; o tempo de resposta deve ser projetado observando dois aspectos:
a extensão (o espaço de tempo entre um comando do usuário e a resposta do software) e a

Professor Luis Octavio - 10


CPC - Parte II – Análise e Projetos de Sistemas
variabilidade (que se refere ao desvio de tempo de resposta do tempo de resposta médio de todas
as funções do sistema);
• a ajuda ao usuário é um outro parâmetro importante, uma vez que é muito comum a ocorrência de
dúvidas durante a utilização de um software; na maioria dos softwares, dois tipos de facilidades de
ajuda podem ser definidas: a ajuda integrada, que é projetada juntamente com o software e que
permite que o usuário obtenha respostas rapidamente sobre tópicos relativos à ação que ele está
realizando, e a ajuda "add-on", a qual é incorporada após a instalação do software e que exige que
o usuário percorra uma lista relativamente longa de tópicos para encontrar a resposta à sua dúvida;
é óbvio que o primeiro tipo de ajuda pode tornar a interface mais amigável;
• o tratamento de mensagens de erro é um outro aspecto com o qual o projetista deve preocupar-
se; a forma como as mensagens são apresentadas para o usuário deve ser cuidadosamente
estudada; em muitos casos, as mensagens de erro indicam situações (anormalidades) às quais os
usuários não têm nenhum controle (por exemplo, memória insuficiente para executar uma dada
função); em outros casos, elas sinalizam uma manipulação incorreta por parte do usuário, a qual
pode ser corrigida (por exemplo, indicação de um parâmetro fora dos limites válidos); neste caso, a
mensagem deve apresentar informações suficientemente completas e que permitam que o usuário
recupere a origem do erro; no caso em que o erro provoque conseqüências danosas à execução de
uma dada tarefa (por exemplo, adulteração de conteúdo de um arquivo), estas deverão ser
explicitadas na mensagem; resumindo, quanto melhor elaboradas forem as mansagens de erro,
menor poderá ser a frustação do usuário quando elas ocorrerem;
• a rotulação de comandos (ou de menus e opções) corresponde a um outro aspecto que deve ser
tratado com especial atenção pelo projetista; os softwares onde a interação é feita através de uma
linguagem de comandos correspondem a uma abordagem que tende a desaparecer dando lugar ao
uso de técnicas de "point-and-pick", baseadas no uso de janelas e tendo o mouse como ferramenta
essencial de entrada de dados e comandos; de todo modo, mesmo softwares com interfaces
gráficas de última geração podem oferecer ao usuário uma opção de uso do teclado para todas (ou
pelo menos para as mais importantes) funções disponíveis no software (os atalhos de teclado); um
outro aspecto presente em aplicações mais recentes é o conceito de macros, que podem ser
definidos pelo usuário para armazenar as seqüências mais comuns de uso do software; segundo
este conceito, ao invés de digitar todos os comandos necessários à realização de uma dada tarefa,
o usuário digita simplesmente o nome do macro; um último aspecto relacionado aos comandos é o
uso de padronizações em relação aos rótulos ou atalhos de teclado; um exemplo claro deste tipo de
padronização está na maior parte das aplicações construídas para os ambientes gráficos, que
utilizam o mesmo rótulo para ações compatíveis como as ações de cópia e reprodução de blocos de
texto ou gráfico (copy/paste), as ações de salvamento de arquivos (save/save as...), o abandono de
um programa (exit).

6.2.4. A Implementação de Interfaces


O projeto de uma interface homem-máquina consiste invariavelmente num processo iterativo, onde um
modelo de projeto é criado, implementado na forma de protótipo e vai sendo refinado e aproximando-se da
versão definitiva à medida que recebe realimentações por parte de usuários típicos do software.
Um aspecto importante neste processo é a disponibilidade de ferramentas de suporte à abordagem
que permitam obter, com certa agilidade, os modelos de projeto e realizar as modificações necessárias de
modo a obter as versões finais.
Atualmente, existem diversos conjuntos de ferramentas de suporte ao desenvolvimento de interfaces,
as quais oferecem bibliotecas para a construção dos elementos básicos como janelas, menus, caixas de
diálogos, mensagens de erros, etc...Alguns ambientes de programação mais recentes incluem a possibilidade
do programador "desenhar" o aspecto visual das telas da interface e obter automaticamente o código dos
módulos de interface a partir dos desenhos.
Uma vantagem do uso de tais ferramentas, além da redução do esforço de desenvolvimento, é a
obtenção de uma interface que respeite a determinados padrões de aparência e acesso a comandos, já
adotados por outras aplicações de uma mesma plataforma.
6.3. Princípios do Projeto de Interfaces
De modo a cumprir o objetivo de gerar uma interface que permita ao usuário explorar completa e
eficientemente as potencialidades do software, um conjunto de princípios deve ser observado. Não existe

Professor Luis Octavio - 11


CPC - Parte II – Análise e Projetos de Sistemas
uma fórmula ótima para o desenvolvimento das interfaces, mas, em linhas gerais, pode-se classificar os
princípios sob três diferentes pontos de vista: a interação, a exibição de informações e a entrada de dados.

6.3.1. A Interação
No que diz respeito à interação, pode-se relacionar as seguintes diretrizes:

• a coerência, na definição das escolhas do menu, entradas de comandos e outras funções


importantes;
• utilização de recursos visuais e auditivos nas respostas a comandos do usuário;
• exigir confirmação de qualquer ação destrutiva não trivial (eliminação de arquivos, abandono do
software, alterações substanciais de configuração, etc...), proteger eventualmente com senha ações
que possam acarretar em conseqüências catastróficas para o sistema;
• possibilitar a reversão ("undo") da maior parte das ações (por exemplo, um usuário que selecione
um bloco de texto a ser copiado e que digite acidentalmente uma tecla qualquer antes do comando
de cópia pode perder parte do seu trabalho se não houver a possibilidade de anulação da digitação);
• redução da quantidade de informações a ser memorizada no intervalo entre ações;
• otimização de diálogo, definindo cuidadosamente o layout das telas e dos atalhos de teclado;
• admissão de erros do usuário (atalhos de teclado incorretos, comandos e dados inadequados,
etc...), evitando a ocorrência de funcionamento anormal (relacionado à robustez);
• categorização das atividades, organizando a tela segundo a classificação escolhida (operações de
arquivos, operações de edição, ajuda, formatação, configurações, etc...);
• oferecimento de facilidades de ajuda sensíveis ao contexto;
• nomeação de comandos através de verbos ou expressões verbais simples.

6.3.2. A Exibição de Informações


Com relação à exibição de informações, os seguintes aspectos devem ser observados:

• a concisão, ou seja, mostrar apenas informações relevantes ao contexto do sistema;


• priorizar a utilização de símbolos gráficos para a expressão de informações, quando houver
possibilidade;
• precisão com relação às mensagens de erro, permitindo que o usuário possa tomar alguma ação
que possa recuperar o erro ou que ele possa evitar uma situação semelhante;
• em informações textuais, o uso de letras maiúsculas e minúsculas pode facilitar o entendimento;
• uso de janelas para separar diferentes tipos de informação;
• utilizar displays análogos para representar valores de grandezas reais de um dado sistema (por
exemplo, a utilização da figura de um termômetro para indicar o valor da temperatura de uma
determinada substância é mais significativa para um usuário do que um valor numérico desfilando
na tela; eventualmente, uma combinação dos dois pode ser uma boa solução — redundância);
• uso eficiente do espaço da tela, particularmente em interfaces baseadas no uso de múltiplas
janelas; a disposição destas deve ser tal que pelo menos uma parte de cada janela continue sendo
visualizada; caso contrário, definir um mecanismo que permita fazer rapidamente o chaveamento
entre janelas (menu Janelas, ou comandos de teclado — ALT+TAB, por exemplo);

6.3.3. A Entrada de Dados


Durante a utilização de um software com alto nível de interatividade, o usuário passa boa parte do seu
tempo fazendo a escolha de comandos e inserindo dados de processamento. De forma a melhorar as
condições nas quais estas interações ocorrem, os seguintes princípios devem ser considerados:

• minimização do número de ações necessárias à entrada de dados, reduzindo, principalmente a


quantidade de texto a ser digitada; um recurso interessante para esta redução é o uso de recursos
gráficos sensíveis ao mouse, como por exemplo, escalas variáveis;
• a coerência visual da interface em relação às entradas, mantendo cores, tamanhos e formas
compatíveis com o restante da interface;
• configuração da entrada por parte do usuário, permitindo minimizar, em função das habilidades
do usuário, etapas na entrada dos dados (por exemplo, eliminar quadros de informação sobre como
o usuário deve proceder para executar determinado comando ou definir um dado);

Professor Luis Octavio - 12


CPC - Parte II – Análise e Projetos de Sistemas
• desativação de comandos inadequados ao contexto das ações realizadas num dado momento, o
que pode evitar que o usuário gere erros de execução pela introdução de um comando inválido (por
exemplo, invalidar o comando Reduzir Zoom, quando a redução chegou ao seu limite);
• fornecimento de poder de interação ao usuário, permitindo que ele controle a navagação
aolongo do software, eliminando ações de comando e recuperando-se de erros sem a necessidade
de abandonar o software;
• minimizar o esforço do usuário para a entrada de dados (evitar que o usuário tenha de digitar
unidades na entrada de grandezas físicas, utilizando uma unidade default modificável; eliminar a
necessidade de digitação de ",00" quando os valores não contiverem componentes decimais, etc...).

Professor Luis Octavio - 13


CPC - Parte II – Análise e Projetos de Sistemas
Capítulo II - Modelagem

1. Modelagem
A modelagem de um sistema de processamento de dados pode ser feita a partir de dois enfoques:
1°) Enfoque dos DADOS que são processados;
2°) Enfoque das FUNÇÕES que tratam esses dados.
Esses dois enfoques são complementares e, usados conjuntamente, fornecem ao analista os dois
principais ângulos do problema de análise: DADOS E FUNÇÕES. O Diagrama de fluxo de dados (DFD) e o
Diagrama Hierárquico Funcional (DHF) é o diagrama utilizado para prover a visão dos DADOS.
Os modelos Funcional e de Dados, ao integrarem um projeto de sistemas, constituem-se em importantes
instrumentos para, entre outras coisas:
1. Apresentar, através de diagramas, uma síntese do problema. Destacando seus aspectos mais relevantes;
1. Oferecer uma visão contextual do sistema em análise.
2. Facilitar a comunicação entre os integrantes da equipe de desenvolvimento (gerentes, analistas, usuários,
etc);
3. Motivar a participação do usuário no projeto;
4. Documentar o processo de análise, para que o trabalho não sofra solução de continuidade;
Apesar dos dois enfoques (Funcional e de Dados) do processo de análise de sistemas, este texto trata,
especificamente, da MODELAGEM DE DADOS, com o emprego do MODELO DE ENTIDADES E
RELACIONAMENTOS, ressaltando as principais características de uso dessa ferramenta.
1.1. Níveis de Abstração
Um sistema de informações, atravessa diversas fases de análise, antes de ser efetivamente implantado no
computador. Essa sequência de fases, onde o analista busca conhecer a realidade e representando-la através de
modelos, constitui o que chamamos NIVEIS DE ABSTRAÇÃO.
Diversos são os autores que tem escrito sobre as fases da análise de sistemas, definindo, para cada uma
delas, diferentes modelos e compondo metodologias. A quantidade de Níveis de abstração que devemos
atravessar para atingirmos o objetivo de implatação do sistema, não é consenso entre eles. Neste texto, tratremos
exclusivamente da modelagem de dados, e de técnicas que darão origem a um projeto de banco de dados.
Utilizando a partir do MUNDO REAL, três níveis de abstração: MODELO DESCRITIVO, MODELO LÓGICO,
MODELO FÍSICO.
Nossa abordagem é do tipo “TOP DOWN”, procurando conhecer o problema a partir de seus aspectos mais
gerais, para os mais específicos. O esquema de análise adotado encontra-se representado na figura a seguir:

MUNDO REAL

MODELO
DESCRITIVO

MODELO
LÓGICO

MODELO
FÍSICO

BANCO
DE
DADOS

Professor Luis Octavio - 14


CPC - Parte II – Análise e Projetos de Sistemas
A) MUNDO REAL
1. MUNDO REAL envolve todos os objetos (normas, pessoas, eventos, fatos, organismos sociais, etc..), que
compõem o CENÁRIO, do qual, o analista deverá extrair a parte a ser representada no computador, que
pode ser uma empresa, um departamento, setor, preocesso de negócio, etc..

B) MODELO DESCRITIVO
Este modelo é representado pôr um texto contendo a descrição do mundo real (ambiente alvo de estudo),
explicitando as características do problema a ser tratado através de regras do negócio, elenco de necessidades, a
análise de requisitos, questionários, formulários, relatórios, informações sobre volume, etc.. Constituí o primeiro
nível da modelagem, onde o analista estabelece as fronteiras do sistema.
Neste nível de abstração o modelador procura estabelecer as fronteiras do sistema, identifica a área alvo
da modelagem, descreve o problema a ser solucionado e os componentes sobre os quais o usuário deseja
armazenar e recuperar informações. Deve-se relatar o maior nível de detalhes possível a respeito do problema,
cuidando-se para não perder a objetividade.
O maior problema do modelo descritivo é a falta de padrão. Existem várias maneiras de se descrever os
mesmo problema, as palavras possuem significados variados e podem causar dupla interpretação, ou seja,
ambigüidade. Para amenizar esse problema, deve-se evitar textos com períodos longos, procurar trabalhar com
tópicos, frases curtas e utilizar palavras precisas e adequadas ao vocabulário profissional do usuário.

C) MODELO LÓGICO
Também conhecido conhecido como CONCEITUAL, ‘é um modelo baseado em símbolos
PADRONIZADOS, que expressa, graficamente, os CONCEITOS do MUNDO REAL delineados no modelo
Descritivo. A utilização de uma simbologia padronizada torna a linguagem mais precisa, o que facilita a
comunicação entre os integrantes da equipe de desenvolvimento, especialmente, entre analistas e usuários.
Portanto, esse modelo é o mais adequado para o registro e validação dos conceitos do mundo real, nas fases do
projeto que envolvem o usuário.
O produto dessa fase de análise deve ser um MODELO DE ENTIDADES E RELACIOANAMENTOS (MER)
enfocando a visão dos DADOS com alto nível de abstração, ou seja, voltado para o MUNDO REAL e sem
preocupar-se com ambiente operacional, com, pôr exemplo, o software e hardware no qual o sistema será
implantado.
Neste nível da modelagem, deve-se ressaltar os aspectos mais relevantes do problema, ou seja,
representa-se principais entidades, relacionamentos, estruturas de dados e integração com outros sistemas. Os
detalhes do banco de dados (chaves primárias, estrangeiras, integridades, etc.) devem ser deixados para a fase
seguinte, de construção do modelo operacional.

D) MODELO FÍSICO
Também conhecido como modelo OPERACIONAL, decorre da análise do Modelo Lógico, visando torna-lo
adequado ao ambiente operacional, no qual o sistema será implantado. No caso específico deste texto, essa
análise visa adaptar o modelo lógico às limitações de um Sistema Gerenciador de Banco de Dados Relacional
(SGBD-R).
Obter o projeto das tabelas do banco de dados é o principal objetivo dessa fase e para alcança-lo, o
analista deve investigar cada entidade do Modelo Lógico, decompor estruturas em elementos de dados, utilizar a
NORMALIZAÇÃO e o conhecimento sobre o MODELO RELACIONAL como balizadores de suas ações.
Nesta fase, o dicionário de dados de Modelo Conceitual é enriquecido com a escolha das chaves primárias,
definição de chaves estrangeiras, índices, integridades, e outros detalhes essenciais para a criação do banco de
dados.

D) BANCO DE DADOS
É o resultado da análise do sistema através dos vários níveis de abstração, criado no computador, através
da linguagem de definição de dados DDL do SGBD.
Do ponto de vista teórico, o modelo FÍSICO seria o ideal para ser implantado. Porém, a prática revela que
esse modelo ainda pode sofrer modificações antes que o DB seja criado. Os principais fatores que determinam
essas modificações são a MELHORIA DE PERFORMANCE e a DISTRIBUIÇÃO DE DADOS.
Visando aumentar a performance, podem ser criadas redundâncias, com a desnormalização e criação de
tabelas totalizadoras para geração de informações gerenciais. Nesses casos, deve-se Ter espqcial cuidado com a

Professor Luis Octavio - 15


CPC - Parte II – Análise e Projetos de Sistemas
consistência do BD no processo dos dados. Além disso, deve-se considerar que a redundância de dados aumenta
os custos com processamento e armazenamento de dados, que devem ser compensados pelo benefício esperado.
Com relação à distribuição de dados é comum a criação de cópias de tabelas (distribuição pôr replicação)
ou a fragmentação de uma entidade do modelo operacional em várias tabelas não redundantes (distribuição por
particionamento). Em ambos os casos, as partes resultantes são distribuídas em diversos nós da rede e a
manutenção dessas partes será facilitada caso o SGBD possua algum mecanismo de gerenciamento de
distribuição de dados.

10.2. MODELO DE ENTIDADES E RELACIONAMENTOS


O MODELO DE ENTIDADE E RELACIONAMENTOS (MER), foi proposto originariamente por PETER
CHEN em 1976. Seu objetivo, ao publicar este trabalho, era consagrar um método eficiente para representar os
dados e ressaltar a diferença entre as estruturas suportadas pelos SGBD HIERÁQUICOS, REDE e RELACIONAL.
ATUALMENTE O MER tem sido utilizado para representar a visão dos dados no projeto de banco de dados.
A principal vantagem do MER é a simplicidade. O Modelo de Entidades e Relacionamentos possui apenas
três componentes básicos: ENTIDADE, ATRIBUTO e RELACIONAMENTO (e seus respectivos símbolos para
diagramação).
A proposta original de CHEN foi enriquecida pôr trabalhos de diversos autores, que procuraram atribuir
maior capacidade semântica ao MER, o que gerou as camadas EXTENSÕES. As extensões ao MER possibilitam
representar o mundo real com maior riqueza de detalhes. Pôr outro lado, elas provocaram a diversificação dos
padrões de notação e terminologia, contrastando com a proposta original de simplicidade e acarretando problemas
para a disseminação da cultura.
Este capítulo procura exprimir uma visão objetiva do Modelo de Entidades, para instrumentalizar o analista
frente à necessidade de representar a visão dos dados de um projeto de sistema.
A) NOTAÇÃO E TERMINOLOGIA
ENTIDADE é a representação genérica de um COMPONENTE DO MUNDO REAL, SOBRE O QUAL
DESEJAMOS ARMAZENAR INFORMAÇÕES (ATRIBUTOS).
As ENTIDADES podem representar coisas tangíveis (pessoal, material, patrimônio, etc.) ou intangíveis
(eventos, conceitos, planos, etc.).
Para NOTAR graficamente uma entidade emprega-se um RETÂNGULO identificado pôr um substantivo
(simples ou composto).

Exemplo:

CLIENTE
CONTA _ CORRENTE

B) REGRAS PARA ATRIBUIÇÃO DE NOMES À ENTIDADES


A literatura não consagra um padrão para a atribuição de nomes e entidades, mas para alcançarmos um
mínimo de padronização, indicamos observar a s seguintes regras:
1. Nomes breve e objetivos, grafados em maiúsculas e, que identifiquem facilmente o conteúdo da entidade;
2. No singular, já que a pluralidade decorre, naturalmente, do número de ocorrências (linhas / tuplas),
característica própria de toda entidade.
3. Nomes compostos separados pôr hífen, eliminando-se o uso de preposições ou outros termos de ligação.
4. Evitar abreviação de nomes. Se necessário, ampliar o tamanho da figura representativa da entidade.

C) ATRIBUTO
Os atributos são os dados que devemos armazenar a respeito da entidade, para atender às necessidades
de informações demandadas pelo usuário. Constituem tudo o que se pode relacionar como próprio (propriedade)
da entidade e que, de alguma forma, estejam contidos no escopo do problema em análise. Os atributos qualificam
e distinguem as entidades no MER.
Em relação ao banco de dados, os atributos representam as colunas, que formam a estrutura de dados das
tabelas. As colunas armazenam um valor para cada linha. Esse valor armazenado é designado por VALOR DE
ATRIBUTO.
O conjunto de valores de atributos, distintos pôr um identificador único (chave primária) denomina-se
OCORRÊNCIA. Esse conceito é analogo ao de linha (tupla) em tabela relacional e de registro em arquivo
convencional.
Professor Luis Octavio - 16
CPC - Parte II – Análise e Projetos de Sistemas

Pode-se exprimir os atributos no MER, conforme mostrado na figura abaixo:

CLIENTE CONTA_CORRENTE

O endereço O tipo (1-poupança, 2-C/C)


O nome O cód-agência
O identificador O núm-conta

Cabe observar, que a representação de atributos no MER pode “poluir” o gráfico, comprometendo sua
objetividade e visão contextual. Esse recurso deve ser reservado para situações especiais, em que você queira
destacar um atributo, pôr considera-lo elucidativo para o contexto.

D) DICIONÁRIO DE DADOS
Os ATRIBUTOS são usualmente descritos sob a forma de estruturas e elementos no Dicionário de
Dados, onde deve constar uma relação de atributos para cada entidade do MER. As notações mais utilizadas para
criação de dicionários de dados são as definidas por GANE e YOURDON.
Exemplo da notação de gane para descrição de estruturas de dados:
CLIENTE
IDENTIFICADOR
NOME
ENDEREÇO
CONTA_CORRENTE
NUMERO_CONTA
TIPO_CONTA (1-poupança , 2-c/c)
AGÊNCIA
CÓDIGO_AGÊNCIA
ENDEREÇO_AGÊNCIA
LANÇAMENTOS *
NÚMERO_LANÇAMENTO
DATA
TIPO (deb.,cre.)
VALOR

A figura a seguir ilustra conceitos vistos nesse capítulo, representando a entidade “FUNCIONÁRIO” sob a forma de
uma tabela de banco de dados.

ENTIDADE
DO MER FUNCIONÁRIO
TABELA DO
BD

ENTIDADE FUNCIONÁRIO

MATRIC NOME CARGO DT - NASC ATRIBUTOS


01 MIRIAM 01 25/09/62
02 JUCA 03 18/04/70 OCORRÊNCIA
03 JOÃO 02 10/02/68

VALOR DE
ATRIBUTO

CÉLULA

Professor Luis Octavio - 17


CPC - Parte II – Análise e Projetos de Sistemas
F) RELACIONAMENTO
O relacionamento representa a relação existente entre entidades de um MER. É notado pôr uma LINHA
ligando as ENTIDADES envolvidas e possuem NOME e CARDINALIDADE. Veja a figura a seguir.

RELACIONAMENTO

CLIENTE 1 MOVIMENTA N CONTA_CORRENTE

NOME DO RELACIONAMENTO CARDINALIDADE DO


RELACIONAMENTO
Peter Chen³ utiliza um LOSANGO para representar o RELACIONAMENTO entre entidades, porém, a
experiência demonstra que o uso dessa notação contribui para “poluir” o gráfico e não produz resultado prático,
exceto em casos de relacionamentos que envolvam mais de duas entidades (relacionamento múltiplo – modelo
conceitual).

1 N CONTA_CORRENTE
CLIENTE movimenta

Notação de CHEN

G) CARDINALIDADE DO RELACIONAMENTO (GRAU)


A cardinalidade constitui um indicativo genérico da quantidade de ocorrências (máxima e mínima) de cada
ENTIDADE envolvida no relacionamento. É expressa por sinais (flechas, pés-de-galinha, números, letras, etc...),
que são grafados sobre a linha do relacionamento, nas duas extremidades do mesmo.
A notação para a cardinalidade é o item que apresenta maior variação entre os autores que escrevem
sobre o MER. Nesse texto usaremos uma barra para notar a cardinalidade “l” e o pé-de-galinha para a
cardinalidade “N”.
Exemplo:

CARDINALIDADE CARDINALIDADE “N”

CLIENTE CONTA-CORRENTE

Considerando a cardinalidade, o relacionamento pode ser de três tipos:

1°) 1:1 – Lê –se UM para UM

Exemplo:

CLIENTE MOVIMENTA CONTA_CORRENTE

Indica que UMA ocorrência de entidade CLIENTE relaciona-se com UMA ocorrência da entidade
CONTA_CORRENTE e vice-versa,

2°) 1:N – Lê-se UM para MUITOS

CLIENTE MOVIMENTA
CONTA_CORRENTE

Professor Luis Octavio - 18


CPC - Parte II – Análise e Projetos de Sistemas

Indica que UMA ocorrência da entidade CLIENTE relaciona-se com muitas ocorrências da entidade
CONTA-CORRENTE e vice-versa,

3°) M:N – Lê-se MUITOS para MUITOS


Exemplo:

MOVIMENTA CONTA_CORRENTE
CLIENTE

Indica que:
- UMA ocorrência da entidade CLIENTE relaciona-se com MUITAS ocorrências da entidade CONTA-
CORRENTE e:
5. UMA ocorrência da entidade CONTA-CORRENTE relaciona-se com MUITAS
ocorrências da entidade CLIENTE. (cada das contas conjuntas)

H) NOME DO RELACIONAMENTO
É o componente do modelo E-R que identifica o relacionamento, justificando e esclarecendo a importância
de sua existência para o contexto estudado.
Exemplo:
NOME DO RELACIONAMENTO

CLIENTE MOVIMENTA CONTA_CORRENTE

Nos casos onde o relacionamento é óbvio torna-se dispensável a atribuição do nome ao mesmo.
O nome do relacionamento é recomendável nas seguintes situações:
6. Quando existirem diversas possibilidades óbvias de relacionamentos entre o par de entidades, sendo que
deseja-se representar apenas em;
7. Pôr questão documentacioanal, para dar maior clareza ao modelo
8. Caso ocorra mais do que um relacionamento entre o par de entidades (relacionamento duplo, triplo, etc.);
9. No caso de AUTO-RELACIONAMENTO (entidade relacionando-se com ela mesma-recursividade)
10. Quando da utilização do MER para representar modelos a serem implementados em SGBD REDE
11. Quando da utilização de CASE para desenho do MER (caso a ferramenta obrigue)
I) PAPEL
O papel das entidades no relacionamento fica implícito no nome e na cardinalidade do mesmo e pode ser
inferido a partir desses componentes. Porém, especificar o PAPEL que cada entidade desempenha é uma
alternativa, que pode substituir, com maior precisão, a colocação do nome no relacionamento, atribuindo ao MER
maior capacidade semântica.
EXEMPLO:

GERENTE

LIDERA

É LIDERADO

PROJETO

OBS: A maioria das ferramentas CASE não utilizam o PAPEL como alternativa para a construção de MER.
Professor Luis Octavio - 19
CPC - Parte II – Análise e Projetos de Sistemas
J) SENTENÇAS (REGRA DO NEGÓCIO)

Duas sentenças são derivadas da leitura do relacionamento. Elas refletem as regras do negócio e ajudam
na validação do modelo junto ao usuário.

Exemplo:

TITULAR
CLIENTE CONTA_CORRENTE

12. Sentença –1:

UM cliente é titular de VÁRIAS CONTAS CORRENTES.

cardinalidade

13. Sentença –2:

UMA CONTA-CORRENTE tem como titular UM CLIENTE.

cardinalidade

OBS: As sentenças sempre começam com UM / UMA e a cardinalidade é a do lado oposto ao da primeira
entidade citada na sentença.

K) INTEGRIDADE REFERENCIAL (IR)

A Integridade Referencial é notada no MER através de sinalização colocada no relacionamento junto


á marca de carnalidade, que indica se o relacionamento é OBRIGATÓRIO ou OPCIONAL (TOTAL / PARCIAL). Os
sinais utilizados para notar a IR, variam muito, conforme os autores ou ferramenta CASE adotados e se confundem
com a marca de cardinalidade.
Veja no quadro a seguir as notações mais utilizadas para IR:

OPCIONAL OBRIGATÓRIO AUTOR


O (bolinha aberta) (bolinha fechada) JAMES MARTIN
Sem marcação | (uma barra vertical) DIVERSOS
| (uma barra vertical) || (duas barras verticais) DIVERSOS
Linha do relacionamento tracejada Linha cheia no relacionamento BACHMAN / GANE

Exemplo:

MOVIMENTA
CLIENTE CONTA_CORRENTE

L) REGRAS GERAIS
14. Não podem existir duas entidades iguais no mesmo modelo, ou seja, que representem o mesmo objetivo
do mundo real e possuam os mesmos atributos; mesmo que elas possuam nomes diferentes.
15. Cada entidade deve possuir pelo menos dois atributos (colunas) e duas ocorrências (linhas)
16. No modelo Operacional os relacionamentos devem envolver, no máximo, duas entidades em sua
passagem para o modelo operacional.
17. Pode existir mais do que um relacionamento entre o mesmo par de entidades (relacionamento duplo, triplo,
etc.)

Professor Luis Octavio - 20


CPC - Parte II – Análise e Projetos de Sistemas
18. Para cada relacionamento com cardinalidade “N:N” do Modelo Conceitual, deve ser criada, no modelo
Operacional, uma ENTIDADE ASSOCIATIVA. Essa entidade será ligada às demais pôr dois
relacionamento “1:N”, sendo que as cardinalidades “N” de cada relacionamento, serão marcadas ao seu
lado.
19. Deve-se avaliar os relacionamentos com cardinalidade “1:1”, verificando se o par de entidades envolvidas
pode ser representado pôr uma entidade única.
20. Cada entidade do MER deve participar de pelo menos um relacionamento. Caso isso não ocorra é provável
que a entidade isolada não faça parte do contexto modelado.

M) VANTAGENS E DESVANTAGENS DO MER


Vantagens:
21. Simplicidade de notação e terminologia
22. Rápida absorção dos conceitos por parte dos técnicos
23. Facilidade de compreensão pôr parte dos usuários
24. Capacidade de representar diversos níveis de abstração
25. Compreensão mais objetiva, mais formal e portanto menos ambígua da do problema.

Desvantagens do MER:
26. Diversidade da notação e terminologia
27. Nenhuma ênfase aos processos que manipulam as informações.

10.3. Tipos Especiais de Relacionamento


Os casos apresentados a seguir representam situações especiais que ocorrem esporadicamente.
Geralmente os relacionamentos do MER são do tipo 1:N entre um par de entidades.
A) AUTO RELACIONAMENTO
O auto-relacionamento representa a relação entre linhas de uma mesma tabela. Ë também conhecido como
RECURSIVIDADE.
Exemplos:

COMPÕE
PEÇA
FUNCIONÁRIO GERÊNCIA

UM funcionário gerencia “N “ funcionários UMA peça compõe “N” peças


UM funcionário é gerenciado por “1” funcionário UMA peça é componente de “N” peças

B) MAIS DE UM RELACIONAMENTO (duplo, triplo, etc.)

Ocasionalmente pode ser necessário representar mais de um relacionamento entre o mesmo par de
entidades. Estes relacionamentos serão válidos desde que denotem situações situações distintas e independentes.
Neste caso, existirão no Modelo Operacional, tantas chaves estrangeiras quantos forem os relacionamentos.

LOTA
SETOR CHEFIA FUNCIONÁRIO

C) RELACIONAMENTO MÚLTIPLO
O relacionamento Múltiplo, previsto pôr PETER CHEN. É aquele que relaciona mais do que duas
entidades. Este tipo de relacionamento somente ocorre em Modelos Conceituais e geralmente denota eventos.
Para implementa-lo nos SGBD-R é necessário criar uma entidade, em procedimento análogo ao que é adotado
nos casos de relacionamento “N:N”.
Exemplo:
Professor Luis Octavio - 21
CPC - Parte II – Análise e Projetos de Sistemas

VENDE
VENDEDOR PRODUTO

CLIENTE

10.4. Extensões ao MER


EXTENSÕES AO MER são conceitos e simbologias criadas pôr diversos autores que escreve sobre o
Modelo de Entidades, para representar situações específicas, não cobertas pela proposta original de PETER
CHEN. As extensões possibilitam ao modelador mais genérico (conceitual) ou mais específico (operacional),
conforme a necessidade. Neste capítulo destacamos algumas extensões as quais julgamos importantes para a
abordagem metodológica que adotamos nneste texto.
As extensões que abordaremos são as seguintes:
-Generalização (Setzer e Outros) ou Supertipo (Gane)
-Especialização (Setzer e Outros), subtipo (Gane), particionemto ou classificação (outros)
-Agregação (Setzer)

A)GENERALIZAÇÃO
É o resultado da união de dois ou mais conjuntos de entidades afins, de mais baixo nível de abstração,
produzindo uma entidade mais genérica. Portanto a generalização parte de entidades ESPECÍFICAS para
criar uma GENÉRICA.
O exemplo a seguir apresenta dois tipos de conta (corrente e poupança).NO Modelo Conceitual elas
apresentam-se como entidades independentes. Verificado que elas possuem atributos em comum, criou-se no
modelo Operacional a entidade genérica “CONTA”, que contém contém os atributos comuns aos dois tipos de
conta, além de um atributo “TIPO” para diferenciá-las. Essa solução pode simplificar o processo de atualização e
facilitar determinadas consultas que manipulem informações gerais sobre os dois tipos de conta.

Exemplo:
MODELO CONCEITUAL MODELO OPERACIONAL

CLIENTE
CLIENTE

CONTA_CORRENTE POPANÇA CONTA

GENERALIZAÇÃO
TIPO

ENTIDADES ESPECÍFICAS

POUPANÇA
CONTA_CORRENTE

Professor Luis Octavio - 22


CPC - Parte II – Análise e Projetos de Sistemas
B) ESPECIALIZAÇÃO
É o resultado da divisão de uma entidade genérica, em subconjuntos de entidades, que contenham
atributos específicos de determinadas categorias de entidades. Portanto, a Especialização parte de uma entidade
GENÉRICA para criar ESPECÍFICAS.
Exemplo:
MODELO CONCEITUAL MODELO OPERACIONAL

CLIENTE CLIENTE

CONTA
CONTA

ENTIDADE GENÉRICA
TIPO

ESPECIALIZAÇÃO CONTA_CORRENTE
POUPANÇA

C) AGREGAÇÃO
Na abordagem “top-down” (do geral para o específico) é comum representar-se no Modelo
Conceitual apenas as entidades mais importantes para a elucidação do problema. Assim, uma única entidade do
Conceitual, ao ser normalizada, pode dar origem a um conjunto de entidades e seus relacionamentos no Modelo
Operacional.
Portanto, a AGREGAÇÃO é um recurso do Modelo Conceitual, que representa através de uma única
entidade “não-normalizada”, um conjunto de entidades e relacionamentos do Nível Operacional.
A agregação permite visualizar um modelo complexo, com muitas entidades, de uma maneira mais
genérica. Com isso, obtém-se uma melhor visão do contextro, com destaque para as entidades e relacionamentos
mais importantes e omissão dos detalhes irrelevantes.

MODELO CONCEITUAL MODELO OPERACIONAL

CLIENTE
CLIENTE

NOTA-FISCAL
NOTA-FISCAL

NORMALIZAÇÃO
AGREGAÇÃO
ITENS-NOTA PRODUTO

Professor Luis Octavio - 23


CPC - Parte II – Análise e Projetos de Sistemas
D) VARIAÇÃO DO CONCEITO DE AGREGAÇÃO

Alguns autores não admitem o relacionamento múltiplo e utilizam a Agregação para representar o
relacionamento de uma entidade com um par de entidades, conforme mostrado no gráfico a seguir. Nesse texto
não adotaremos essa linha de pensamento.

Exemplo:

CLIENTE
COMPRA

VENDEDOR PRODUTO

Professor Luis Octavio - 24


CPC - Parte II – Análise e Projetos de Sistemas
Capítulo III – Análise e projeto orientado a objetos com notação UML

1. Introdução
Existem muitas definições para o que se chama, em desenvolvimento de software, de Orientação a Objetos.
Estudando a bibliografia da área, observa-se que cada autor apresenta a sua visão do que entende por esta
abordagem. Aí vão alguns conceitos:

1. a orientação a objeto pode ser vista como a abordagem de modelagem e desenvolvimento que facilita a
construção de sistemas complexos a partir de componentes individuais;
2. o desenvolvimento orientado a objetos é a técnica de construção de software na forma de uma coleção
estruturada de implementações de tipos abstratos de dados;
1. desenvolvimento de sistemas orientado a objetos é um estilo de desenvolvimento de aplicações onde a
encapsulação potencial e real de processos e dados é reconhecida num estagio inicial de
desenvolvimento e num alto nível de abstração, com vistas a construir de forma econômica o que imita
o mundo real mais fielmente;
2. a orientação a objetos é uma forma de organizar o software como uma coleção de objetos discretos que
incorporam estrutura de dados e comportamento.

Visando a que cada leitor passe a ter a sua própria definição do que significa Orientação a Objetos, vamos
apresentar aqui os principais conceitos relacionados a esta tecnologia.

2. Orientação a objetos: Conceitos

2.1. Características de Objetos


Um objeto é algo distinguível que contém atributos (ou propriedades) e possui um comportamento. Cada
objeto tem uma identidade e é distinguível de outro mesmo que seus atributos sejam idênticos. Exemplos de
objetos: o parágrafo de um documento, a janela num computador, o aluno Pedro neste curso, o carro do João. O
conjunto de valores associados às propriedades do objeto definem o estado deste; o comportamento descreve as
mudanças do estado do objeto interagindo com o seu mundo externo, através das operações realizadas pelo
objeto.
As seções que seguem apresentam outras definições relacionadas à tecnologia de objetos que são de
extrema importância à compreensão das atividades e metodologias baseadas em objetos.

2.2. Classe
Uma classe é o agrupamento de objetos com a mesma estrutura de dados (definida pelos atributos ou
propriedades) e comportamento (operações). Uma classe é uma abstração que descreve as propriedades
importantes para uma aplicação e não leva em conta as outras. Exemplos de classes: Parágrafo, Janela, Aluno,
Carro. Cada classe descreve um conjunto possivelmente infinito de objetos individuais. Cada objeto é uma
instância de classe. Cada instância de classe tem seu próprio valor para cada um dos atributos da classe mas
compartilha os nomes e as operações com as outras instâncias de classe.

2.3. Orientação a objetos


Ela se caracteriza principalmente pela abstração, encapsulamento, herança e polimorfismo.

2.4. Abstração
A abstração consiste em enfocar os aspectos mais importantes de um objeto (visão externa; o que é e o
que ele faz), ignorando suas características internas (visão interna; como ele deve ser implementado).

2.5. Encapsulamento
O encapsulamento é o empacotamento de dados (atributos) e de operações sobre estes (métodos). No
caso da orientação a objetos, os dados não podem ser acessados diretamente mas através de mensagens
enviadas para as operações. A implementação de um objeto pode ser mudada sem modificar a forma de acessa-
lo.
2.6. Herança
A herança consiste no compartilhamento de atributos e operações entre as classes numa relação
hierárquica. Este mecanismo permite a uma classe ser gerada a partir de classes já existentes; por exemplo a
classe automóvel herda da classe veículo algumas propriedades e operações. Uma classe pode ser definida de
forma abrangente (como no caso do exemplo anterior) e posteriormente refinada em termos de sub-classes e

Professor Luis Octavio - 25


CPC - Parte II – Análise e Projetos de Sistemas
assim sucessivamente. Cada subclasse herda todas as propriedades e operações da sua superclasse, (que não
precisam ser repetidas) adicionando apenas as suas especificas.
Esta relação entre classes é uma das grandes vantagens de sistemas orientados a objetos por causa da
redução de trabalho resultante durante o projeto e a programação destes.
Existem dois tipos de herança:

1. herança simples, onde uma subclasse tem somente uma superclasse;


2. herança múltipla, na qual uma subclasse herda simultaneamente de várias superclasses.

2.7. Polimorfismo
O polimorfismo significa que uma mesma operação pode se comportar de forma diferente em classes
diferentes. Exemplo de polimorfismo, a operação calcular o perímetro que é diferente para as instâncias de
classe circulo e polígono ou a operação mover diferente para janela de computador e peça de xadrez. Uma
operação que tem mais de um método que a implementa é dita polimórfica.
Nos sistemas orientados a objetos, o suporte seleciona automaticamente o método que implementa uma
operação correto a partir do nome da operação e da classe do objeto no qual esta se operando, da mesma forma
que no mundo real onde o objeto real “tem conhecimento” intrínseco do significado da operação a realizar. Essa
associação em tempo de execução é chamada de ligação dinâmica (ou “dynamic binding”).

3. Desenvolvimento orientado a objetos


O desenvolvimento orientado a objetos diz respeito aos procedimentos de concepção de sistemas a partir
dos conceitos básicos anteriores. Ele corresponde às principais fases do ciclo de vida de software: análise, projeto
e implementação.Existem várias técnicas para o desenvolvimento orientado a objetos cujas características serão
citadas a seguir.

3.1. OMT — Object Modelling Technique


A técnica OMT se distingue pela sua divisão em 4 fases: análise, projeto de sistema, projeto de objetos e
implementação. Como principais características, destacam-se a separação clara entre análise e projeto, a inclusão
de todos os conceitos da orientação a objetos e de alguns específicos do método. A fase de análise é baseada de
3 diagramas relacionados entre si e que representam os modelos de objetos, dinâmico e funcional.

3.2. Técnica de Booch


A técnica Booch é dividida em 3 fases: análise de requisitos, análise de domínios e projeto, com ênfase
maior no projeto. Os diagramas seguintes são providos: de classes, de transição de estados, de objetos,
temporais, de módulos e de processos.

3.3. Técnica de Coad/Yourdon


Esta técnica utiliza um modelo único para todas as fases (OOA, OOD e OOP), o que torna mais simples e
compreensível o desenvolvimento.

3.4. Técnica de Shlaer/Mellor


Ela fornece um conjunto integrado de modelos de análise e que depois são traduzidos (Recursive Design)
durante o projeto.

3.5. Técnica OOSE (Jacobson)


A técnica OOSE é centrada em casos-de-uso (use-cases) e permite durante a análise aprofundar o
entendimento de como o sistema deve ser realmente utilizado.
3.6. Técnica Fusão
A Fusão corresponde a uma integração das técnicas OMT e de Booch na qual os dois modelos de objeto e
de interface visam representar os aspectos estáticos e dinâmicos do problema.

3.6. Técnica UML


UML ou Unified Modeling Language é uma unificação dos métodos OMT, Booch e OOSE que está sendo
submetido a OMG para a padronização.
3.6.1. Conceito
Linguagem visual para especificação (modelagem) de sistemas orientados a objetos, que fornece
representação gráfica para os elementos essenciais do paradigma de objetos: classes, atributos, objetos, troca de
mensagens .

Professor Luis Octavio - 26


CPC - Parte II – Análise e Projetos de Sistemas
3.6.2. Características
1. Não está presa a uma etapa do desenvolvimento de software
2. Não está presa a um processo
3. Não está presa a uma linguagem de programação

3.6.3. Blocos de construção UML


I – Itens
a) Itens estruturais: são os substantivos utilizados em modelos UML. São as partes mais estáticas do
modelo, representando elementos conceituais ou físicos.
1. Classes: são conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamentos e
semântica. São representadas por retângulos (nome, atributo e operações).
2. Interface: coleção de operações que especificam serviços de uma classe ou componente. É representada
por um círculo (nome).
3. Colaborações: são responsáveis por definirem interações e são sociedades de papéis e outros elementos
que funcionam em conjunto para proporcionar um comportamento cooperativo superior à soma de todos os
elementos. São representadas pó elipses com linhas tracejadas (nome).
4. Caso de uso: descrição de um conjunto de seqüências de ações realizadas pelo sistema que proporciona
resultados observáveis de valor para um determinado ator. È representado por uma elipse com linhas
contínuas (nome).
5. Classes ativas: são classes cujos objetos têm um ou mais processos ou threads, podendo iniciar a
atividade de controle. Seus objetos representam elementos cujo comportamento é concorrente com o de
outros elementos. Representadas como as classes, porém com linhas mais grossas.
6. Componentes: são partes físicas e substituíveis de um sistema, que proporcionam a realização de um
conjunto de interfaces. Representados por retângulos com abas (nome).
7. Nó: elemento físico existente em tempo de execução que representa um recurso computacional.
Representado por um cubo (nome).
b) Itens comportamentais: são as partes dinâmicas dos modelos UML, sendo os verbos de um modelo,
representando comportamentos no tempo e no espaço.
8. Interação: comportamento que abrange um conjunto de mensagens trocadas entre um conjunto de objetos
em determinado contexto para a realização de propósitos específicos. Representada por um linha cheia
com seta (nome).
9. Máquina de estado: é um comportamento que especifica as seqüências de estados pelas quais objetos ou
interações passam durante sua existência em resposta a eventos. Representado por um retângulo
arredondado nas pontas (nome e subestados).
c) Itens de agrupamento: são as partes organizacionais dos modelos de UML.
10. Pacote: é um mecanismo de propósito geral para a organização de elementos em grupos. Os itens
estruturais, comportamentais e outros podem ser colocados em pacotes., Representado por um retângulo
com guia (nome).
b) Itens anotacionais: são as partes explicativas dos modelos de UML. São comentários, incluído para
descrever, esclarecer e fazer alguma observação sobre qualquer elemento do modelo.
11. Nota: é apenas um símbolo para representar restrições e comentários anexados a um elemento ou um
coleção de elementos. Representada por um retângulo com a borda dobrada (texto ou comentário).

II – Relacionamentos
a) Dependência: é um relacionamento semântico entre dois itens, nos quais a alteração de um pode afetar a
semântica do outro. Representada por linhas tracejadas com setas e possivelmente com um rótulo.
b) Associação: é um relacionamento estrutural que descreve um conjunto de ligações, em que as ligações
são conexões entre objetos. Representado graficamente por linhas sólidas, com rótulos, papéis e multiplicidades.
12. Agregação: é um tipo de associação que demonstra um relacionamento estrutural entre o todo e suas
partes.
c) Generalização: é um relacionamento de especialização/generalização, nos quais os objetos dos
elementos especializados (filhos) são substituíveis por objetos do elemento generalizado (pais), permitindo assim,
que os filhos compartilham a estrutura e o comportamento dos pais. É representada como linha sólida com uma
seta em branco apontando o pai.
c) Realização: é um relacionamento semântico entre classificadores, em que classificador especifica um
contrato que outro classificador garante executar, podendo ser encontrados entre interfaces e as classes ou
componentes as realizam e entre casos de uso e as colaborações que os realizam. É representada como linha
tracejada com uma seta em branco entre uma generalização e um relacionamento de dependência.

III – Diagramas
Professor Luis Octavio - 27
CPC - Parte II – Análise e Projetos de Sistemas
1. Diagrama de classes: exibe conjunto de classes, interfaces e colaborações bem como
seus relacionamentos. São diagramas são encontrados com maior freqüência em sistemas de modelagem
orientados a objeto e abrangem uma visão estática da estrutura do sistema.
2. Diagrama de objetos: exibe um conjunto de objetos e seus relacionamentos. Representa
retratados de instâncias de itens encontrados em diagramas de classes, abrangem a visão estática da
estrutura ou processo de um sistema, mas sob perspectiva de casos reais ou de protótipos.
3. Diagrama de caso de uso: exibe um conjunto de caso de uso e atores (um tipo especial de
classe) e seus relacionamentos. Abrangem a visão estática de casos de uso do sistema, sendo importante
para a organização e a modelagem de comportamentos do sistema.
4. Diagrama de interação: exibe uma interação, consistindo de um conjunto de objetos e seus
relacionamentos, incluindo as mensagens que podem ser trocadas entre eles.
5. Diagrama de seqüências: é um diagrama interação cuja ênfase está na ordenação temporal das
mensagens.
6. Diagrama de colaboração: é um diagrama interação cuja ênfase está na organização estrutural dos
objetos que enviam e recebem mensagens.
7. Obs: os diagramas anteriores são isomórficos, ou seja, podem ser convertidos um em outro.
8. Diagrama de gráfico de estados: exibem uma máquina de estados, formada por estados,
transições, eventos e atividades, abrangendo a visão dinâmica de um sistema.
9. Diagrama de atividade: é um tipo especial de diagrama de gráfico de estado, exibindo o
fluxo de uma atividade para outra no sistema diagramas de atividades, abrangendo a visão dinâmica do
sistema e é importante principalmente para a modelagem da função de um sistema e da ênfase ao fluxo de
controle entre objetos.
10. Diagrama de componente: exibe as organizações e as dependências existentes em um
conjunto de componentes diagramas de componentes. Abrange a visão estática da implementação de um
sistema.
11. Diagrama de implantação: exibe a configuração dos nós de processamento em tempo de
execução e os componentes neles existentes. Abrange a visão estática do funcionamento de uma
arquitetura diagramas de implantação.

4. Modelagem orientada a objetos


Um modelo é uma abstração que tem como propósito entender um problema antes de solucioná-lo. A partir
de modelos, é possível simular e testar sistemas antes de construí-los, facilitar a comunicação com os usuários e
os outros membros da equipe de desenvolvimento, visualizar e reduzir a complexidade dos problemas a tratar.
No modelo OMT, temos 3 visões combinadas que permitem representar o sistema:

12. um modelo objeto para representar os aspectos estáticos, estruturais, de “dados” de um sistema;
13. um modelo dinâmico para representar os aspectos temporal, comportamental e de “controle” de um
sistema;
14. um modelo funcional para representar os aspectos transformacionais e de “função” de um sistema.

Esses modelos não são independentes, existem interconexões limitadas e explícitas.

4.1. O modelo objeto


O modelo objeto descreve a estrutura de objetos no sistema: sua identidade, suas relações com os outros
objetos, seus atributos e suas operações. Este modelo tenta capturar a estrutura estática dos componentes do
mundo real que pretende-se representar. O modelo objeto tem uma representação gráfica na forma de diagramas
contendo as classes de objetos com seus atributos e operações, e organizados segundo hierarquias e associações
com os diagramas de outras classes.
4.1.1. Objetos e classes
Todos os objetos tem uma identidade e são distinguíveis. Eles são instancias de classes de objetos que
descrevem grupos de objetos com similaridade nas propriedades (atributos), comportamento (operações), relações
com os outros objetos e semântica. A notação gráfica para representar objetos, classes e suas relações é
composta de dois tipos de diagramas:

1. um diagrama de classe, que representa classes de objetos e tem a função de ser um esquema, um
padrão ou um “template” para os dados;
2. um diagrama de instância, utilizado para representar instâncias de classes e tem o objetivo de descrever
como um conjunto particular de objetos se relaciona com outro.

Professor Luis Octavio - 28


CPC - Parte II – Análise e Projetos de Sistemas
O atributo é colocado na segunda parte da caixa. Cada nome de atributo pode ser seguido por detalhes
opcionais tais como tipo (precedido por ":") e valor default (precedido de "="). Identificadores (explícitos) de objeto
não são necessários no modelo objeto pois cada objeto já tem a sua propria identidade (a partir de seus valores).

(Pessoa) (Pessoa)
Pessoa Clara Márcio (Pessoa)

Classe Objetos

Pessoa (Pessoa) (Pessoa)


nome: string Clara Márcio
idade: integer 24 38

Classe com Objetos com


atributos valores

Uma operação pode ser aplicada a ou por objetos numa classe. A mesma operação pode se aplicar a
várias classes diferentes (polimorfismo). Um método é a implementação de uma operação para uma classe.
Quando uma operação tem métodos em várias classes, eles devem ter a mesma assinatura (em número e tipos de
argumentos). As operações se encontram na terceira parte da caixa, como ilustrado na primeira figura . Cada
operação pode ser seguida de detalhes opcionais tais como lista de argumentos (colocada entre parênteses após
o nome, separados por "," ) e tipo de resultado (precedido por ":"). A notação generalizada para classes de objetos
se encontra na segunda figura .

Objeto
Pessoa Arquivo Geométrico
nome identificador cor
idade tamanho (bytes) posição
última alteração
muda_emprego move (delta:vetor)
imprime
muda_end seleciona(p:ponto)
roda(ângulo)

Nome da Classe
nome_atributo-1 : tipo_dado-1 = valor default-1
nome_atributo-2 : tipo_dado-2 = valor default-2
• • •
nome_operação-1:(lista_argumentos-1) = tipo_result-1
nome_operação-2:(lista_argumentos-2) = tipo_result-2
• • •

4.1.2. Ligações e associações


A ligação ou link é uma conexão física ou conceitual entre instâncias de objetos. Por exemplo: Vitório
Mazzola trabalha para UFSC. Uma ligação é uma túpla matemática correspondente a uma lista ordenada de
instâncias de objetos. Uma ligação é uma instância de uma associação.
Uma associação ou association descreve um grupo de ligações com estrutura e semântica comuns. Por
exemplo: uma pessoa trabalha para uma instituição. Todas as ligações de uma associação conectam objetos das
mesmas classes. O conceito de associação é similar aquele usado na área de base de dados.

Associações e ligações são descritas por verbos. Associações são inerentemente bidirecionais e podem
ser lidas nos dois sentidos. Por exemplo: num primeiro sentido pode-se ler Vitório Mazzola trabalha para UFSC e
no sentido inverso, UFSC emprega Vitório Mazzola). Associações são muitas vezes implementadas em

Professor Luis Octavio - 29


CPC - Parte II – Análise e Projetos de Sistemas
linguagens de programação como apontadores (atributo de um objeto que contêm referencia explícita a um outro)
de um objeto para outro. Por exemplo: objeto Pessoa pode conter atributo empregado que aponta para um
conjunto de objetos Instituição.

Uma ligação mostra a relação entre 2 ou mais objetos. A figura abaixo mostra uma associação um-a-um e
as ligações correspondentes. Observa-se, na notação OMT, que a associação corresponde a uma linha entre
classes e que os nomes de associação são em itálico.
As associações podem ser binárias, terçárias ou de ordem maior. De fato, a maior parte é binária ou
qualificada (i.e., é uma forma especial de terçária que será comentado a seguir). A simbologia OMT para terçária
ou n-ário é um losango com linhas conectando este as classes relacionadas. O nome da associação é escrito
dentre do losango; entretanto, os nomes de associação são opcionais. A segunda figura mostra exemplos de
associações e ligações terçárias.
A multiplicidade especifica quantas instâncias de uma classe podem se relacionar a uma única instância
de classe associada. A multiplicidade restringe o número de objetos relacionados. A multiplicidade depende de
hipóteses e de como se define os limites do problema. Requisitos vagos tornam a multiplicidade incerta. Não é
possível de determinar muito cedo a multiplicidade no processo de desenvolvimento de software; num primeiro
tempo, determina-se objetos, classes, ligações e associações e depois decide-se a respeito de multiplicidade. A
distinção mais importante é entre “um” e “vários”; entretanto existem símbolos especiais para “exatamente um”,
“um ou mais”, “intervalos”, “”zero ou mais”, “zero ou um”, conforme mostra a terceira figura .

País tem por capital


Cidade Diagrama
nome nome de Classes

(País) tem por capital


(Cidade)
França Paris

(País) (Cidade) Diagrama


tem por capital
Brasil Brasília de
Instâncias

(País) tem por capital


(Cidade)
Portugal Lisboa

Projeto Linguagem
Diagrama
de Classes
Pessoa

(Projeto) (Linguagem)

planilha eletrônica Cobol

(Pessoa) Diagrama
de
Clara Instâncias

(Projeto) (Linguagem)

programa CAD C

Professor Luis Octavio - 30


CPC - Parte II – Análise e Projetos de Sistemas

Classe exatamente um

Classe muitos (zero ou mais)

Classe opcional (zero ou um)

1+
Classe um ou mais

1-2,4
Classe numericamente especificado

4.1.3. Ligações e associações avançadas

Atributo de ligação. Similarmente ao caso da classe onde um atributo é uma propriedade dos objetos desta, um
atributo de ligação é uma propriedade das ligações numa associação. A primeira figura abaixo apresenta o caso
onde permissão-de-acesso é um atributo da associação Acessível-por. Cada atributo de ligação tem um valor para
cada ligação, conforme pode ser visto nesta figura ainda. É ainda possível ter atributos de ligações para
associações vários-a-um conforme visto na segunda figura e também para ligações terçárias. Apesar de poder
substituir os atributos de ligação por atributos de objetos da associação, é preferível manter atributos de ligação.

Modelagem de associação como classe. Às vezes, é útil modelar uma associação como classe. Cada ligação se
torna uma instância da classe.
acessível por
Arquivo Usuário

autorização de acesso

trabalha para
Pessoa Empresa
nome
nome
chefe seguro social
salário endereço
endereço
função
Supervisiona empregado

taxa desempenho

A figura acima mostra um exemplo disto. Esta opção é particularmente útil quando ligações podem
participar em associações com outros objetos ou quando ligações são sujeitas a operações.

Papel. Um papel ou role é uma extremidade de uma associação. Uma associação binária tem dois papeis, um em
cada extremidade, cada um deles podendo ter seu nome. Cada papel numa associação binária identifica um objeto
ou um conjunto de objetos associado com um objeto na outra extremidade. Nomes de papel são necessários em
associações entre objetos da mesma classe, conforma consta na primeira figura.

Ordenamento. Usualmente, do lado de uma associação “vários”, os objetos não têm ordem explícita e podem ser
vistos como um conjunto. Entretanto, às vezes, os objetos são explicitamente ordenados, o que é representado por
{ordered} perto da indicação de multiplicidade.

Professor Luis Octavio - 31


CPC - Parte II – Análise e Projetos de Sistemas
Qualificação. Uma associação qualificada relaciona duas classes de objetos e um qualificador. O qualificador é
um atributo especial que reduz a multiplicidade efetiva de uma associação, distinguindo objetos dentro do conjunto
na extremidade “vários” da associação.

Autorizado em
Usuário Workstation

Autorização
prioridade
privilégios
início sessão
diretório home

Diretório

4.1.4. Agregação
A agregação é uma relação “parte-todo” ou “uma-parte-de” na qual os objetos representando os
componentes de algo são associados com um objeto representando a junção deles (“assembly”). Algumas
propriedades da classe junção se propagam às classes componentes, possivelmente com alguma modificação
local.
A agregação é definida como uma relação entre uma classe junção e uma classe componente. A
agregação é então uma forma especial de associação. A simbologia da agregação é similar a da associação
(linha), exceto pelo fato de um pequeno losango indicar o lado da junção da relação.

4.1.5. Generalização e herança


Generalizações e herança são abstrações poderosas que permitem compartilhar similaridades entre as
classes, apesar de preservar suas diferenças.

Generalização é uma relação do tipo “é um” entre uma classe e uma ou mais versões refinadas. A classe
que está sendo refinada é uma superclasse e a classe refinada é uma subclasse. Por exemplo, máquina de
comando númerico é uma superclasse de torno, fresadora. Atributos e operações comuns a um grupo de
subclasses são reagrupados na superclasse e compartilhado por cada subclasse. Diz-se que cada subclasse
herda as características de sua superclasse.
A notação para a generalização é um triângulo conectando uma superclasse a suas subclasses. As
palavras próximas ao triângulo no diagrama são discriminadores (i.e. atributos de um tipo enumeração que indica
qual propriedade de um objeto está sendo abstraído por uma relação de generalização particular). Os
discriminadores estão inerentemente em correspondência um-a-um com as subclasses da generalização.
É possível relação de herança em vários níveis. A herança em 2 ou 3 níveis (até 5 em alguns casos) de
profundidade é aceitável; já a mais de 10 níveis é excessiva.
A generalização facilita a modelagem a partir de classes estruturadas e da captura do que é similar e do
que é diferente nas classes. A herança de operação é de grande ajuda durante a implementação para facilitar a
reutilização de código.
Utiliza-se a generalização para se referenciar à relação entre classes, enquanto a herança diz respeito ao
mecanismo de compartilhar atributos e operações usando a relação de generalização. Generalização e
especialização são dois pontos de vista da mesma relação, no primeiro caso vista a partir da superclasse e no
segundo da subclasse: a superclasse generaliza a subclasse e a subclasse refina ou especializa a superclasse.

4.1.6. Módulo
Um módulo é uma construção lógica para reagrupar classes, associações e generalizações. Um módulo
captura uma perspectiva ou uma vista de uma situação, como no caso de um prédio, existem várias visões
correspondentes a planta elétrica, hidráulica, de calefação. Um modelo objeto consiste de um ou vários
módulos. A noção de módulo força a particionar um modelo objeto em peças gerenciaveis. Uma mesma classe
pode ser referenciada em módulos diferentes. De fato, referenciando a mesma classe em múltiplos módulos é o
mecanismo para interligar módulos entre sí.

Professor Luis Octavio - 32


CPC - Parte II – Análise e Projetos de Sistemas
Documento Parágrafo Sentença

Figura
cor
posição centro
largura pena
tipo pena
mover
selecionar
rodar
mostrar

dimensionalidade

0 Dimensional 1 Dimensional 2 Dimensional


orientação
orientação
preenchimento
redimensionar
redimensionar
preencher

Ponto Linha Arco Linha Livre Polígono Círculo


raio
pontos número lados
extremidades ângulo origem diâmetro
controle vértices
ângulo arco
mostrar mostrar
mostrar mostrar mostrar mostrar
rodar

4.2. O modelo dinâmico


O modelo dinâmico descreve os aspectos do sistema que dizem respeito ao tempo e à seqüência de
eventos (operações). Este modelo tenta capturar o controle, aspecto de um sistema que descreve as seqüências
de operação que ocorrem em resposta a estímulos externos, sem levar em conta o que as operações fazem, quem
as ativa e como são implementadas. Os conceitos utilizados nesta modelagem dinâmica são os de eventos que
representam os estímulos externos e de estados que representam os valores de objetos.
A representação gráfica é um diagrama de estados que representa os estados e a seqüência de eventos
permitidos num sistema para uma classe de objetos. Os estados e eventos podem ainda serem organizados de
forma hierárquica e representados num diagrama de estados estruturado.

4.2.1. Eventos e estados


Um estado é caracterizado pelos valores dos atributos e pelas ligações mantidas por um objeto. Um
evento corresponde a um estimulo individual de um objeto a um outro. O diagrama de estados representa o
modelo de eventos, estados e transições de estado para um a classe dada. O modelo dinâmico consiste de
vários diagramas de estados, um para cada classe com comportamento dinâmico importante; ele mostra o modelo
de atividade para um sistema completo. Cada maquina de estados se executa de forma concorrente e pode mudar
de estado independentemente. Os diagramas de estado para as várias classes combinam num modelo dinâmico
único através de eventos compartilhados.
Um evento é algo que ocorre num instante de tempo e que não tem duração. Um evento pode preceder ou
seguir outro evento ou pode não ter relação entre eventos (neste caso, são ditos concorrentes). Cada evento é
uma ocorrência única; entretanto é possível reagrupa-los em classes de eventos e dar a cada uma delas um nome
que indica uma estrutura e um comportamento comuns. Alguns eventos são simples sinais mas muito outros tem
atributos indicando a informação que eles transportam. O tempo no qual o evento ocorre é um atributo implícito de
todos os eventos. Um evento transporta a informação de um objeto a outro; os valores de dados transportados por
um evento são seus atributos. Os eventos incluem as condições de erro e as ocorrências normais.
Um cenário é uma seqüência de eventos que ocorre durante uma execução particular de um sistema. Ele
pode incluir todos os eventos do sistema ou apenas eventos gerados por certos objetos no sistema. A seqüência
de eventos e os objetos que trocam eventos podem ser mostrados juntos num diagrama de rastro de eventos. A
figura da próxima página mostra o cenário e o rastro de eventos para uma chamada telefônica.
Um estado é uma abstração dos valores dos atributos e das ligações de um objeto. Um estado especifica a
resposta do objeto à eventos de entrada. A resposta de um objeto à um evento pode incluir uma ação ou uma
mudança de estado pelo objeto.
Um estado tem uma duração; ele ocupa um intervalo de tempo entre dois eventos. Na definição de estados, pode
se ignorar atributes que não afetam o comportamento do objeto. O estado é caracterizado por um nome e uma
Professor Luis Octavio - 33
CPC - Parte II – Análise e Projetos de Sistemas
descrição contendo a seqüência de eventos que leva ao estado, a condição que o caracteriza e os eventos aceitos
neste estado com a ação que ocorre e o estado futuro. O estado pode incluir os valores de suas ligações.
O diagrama de estados relaciona estados e eventos. A mudança de estado causada por um evento é
chamada de transição. A segunda figura mostra o diagrama de estados de uma linha telefônica. Os diagramas de
estado podem representar ciclos de vida uma-vez (com um estado inicial e um estado final) que representam
objetos com vida finita ou malhas continuas como na segunda figura. Um modelo dinâmico é uma coleção de
diagramas de estado que interagem entre si através de eventos compartilhados.
Uma condição é uma função booleana de valores objetos. Condições podem serem usados como guardas
nas transições, sendo que uma transição guardada dispara quando o evento ocorre e que a condição de guarda é
verdadeira.
chamador levanta o fone Chamador Linha Telefônica Correspondente
inicia tom de discagem
chamador levanta o fone
chamador pressiona dígito (5)
pára o tom de discagem início tom de discagem
chamador pressiona dígito (5) pressiona dígito (5)
fim tom de discagem
chamador pressiona dígito (5)
pressiona dígito (5)
chamador pressiona dígito (1)
pressiona dígito (5)
chamador pressiona dígito (2) pressiona dígito (1)
chamador pressiona dígito (3) pressiona dígito (2)
chamador pressiona dígito (4) pressiona dígito (3)
telefone chamado começa a tocar pressiona dígito (4)
chamador ouve o telefone chamando tom de chamada campainha telefone
correspondente responde atendimento telefone
telefone chamado pára de tocar parada tom de chamada parada campainha
tom de chamada pára no telefone do chamador telefones conectados telefones conectados
telefones estão conectados correspondente desliga
correspondente repõe o fone no gancho conexão desfeita conexão desfeita
telefones estão desconectados chamador desliga
chamador põe fone no gancho

fone no gancho fone no gancho


Ocioso

levanta fone
timeout
fone no gancho Tom Discagem Timetout
ação: som discagem ação: beep baixo

dígito (N) timeout

dígito (N) número Mensagem Gravada


fone no gancho Discando
inválido ação: toca mensagem
Tom Ocupado número válido
ação: tom ocupado ocupado
fone no gancho Conectando
bloqueado ação: tenta conexão
Tom de Bloqueado
ação: tom bloqueado roteado

fone no gancho Chamando


ação: toca campainha mensagem tocada
resposta correspondente

fone no gancho
Conectado

correspondente desliga / linha desconectada

fone no gancho
Desconectado

4.2.2. Operações
Uma descrição do comportamento de um objeto deve especificar o que o objeto faz em resposta a eventos.
Operações associadas à estados ou transições são realizadas em resposta aos estados correspondentes ou a
eventos.
Uma atividade é uma operação que leva tempo para se completar. Ela é associada a um estado. A
notação “do: A” dentro de um caixa de estado indica que a atividade A inicia na entrada no estado e para na saída.
Uma ação é uma operação instantâneo e é associada a um evento. Uma ação representa uma operação
cujo a duração é pequena comparada com a resolução do diagrama de estados. Ações podem também
Professor Luis Octavio - 34
CPC - Parte II – Análise e Projetos de Sistemas
representar operações de controle interno. A notação para uma ação numa transição é um “/” seguido do nome da
ação, após o evento que a causa. Abaixo são mostrados os diagramas de estados com operações.

4.2.3. Diagramas de estado aninhados


Os diagramas de estado podem ser estruturados para permitir descrições concisas de sistemas complexos.
Através de uma generalização, é possível expandir, num nível mais baixo, adicionando detalhes, uma atividade
descrita num nível superior. É possível organizar estados e eventos em hierarquias com herança de estrutura e
comportamento comuns, como no caso da herança de atributos e operações em classes de objetos.

Estado 1 evento1 (atributos) [condição] / ação Estado 2


ação: atividade1 • • •

A agregação permite quebrar um estado em componentes ortogonais, com interação limitada entre eles,
da mesma foram como se tem uma hierarquia de agregação de objetos; a agregação é equivalente à concorrência
de estados (estados concorrentes correspondem geralmente a agregações de objetos).
Uma atividade num estado pode ser expandida como um diagrama de estados de baixo-nível, cada estado
representando um degrau da atividade. Atividades aninhadas são diagramas de estados uma-vez com transições
de entrada e saída, de forma similar a subrotinas. Um diagrama de estados aninhado é uma forma de
generalização (relação do tipo “or”) sobre os estados. Os estados num diagrama aninhado são todos refinamentos
(sub-estados) de um estado (super-estado) de um diagrama de alto-nível; a simbologia utilizada corresponde a
uma caixa arredondada representando o super-estado e contendo todos seus sub-estados.
Eventos podem também ser expandidos em diagramas de estados subordinados. Os eventos podem ser
organizados numa hierarquia de generalização com herança dos atributos de eventos. A hierarquia de eventos
permite que diferentes níveis de abstração sejam usados em diferentes lugares num modelo.

4.2.4. Concorrência
Um modelo dinâmico descreve um conjunto de objetos concorrentes, cada um com seu próprio diagrama
de estados. Os objetos num sistema são inerentemente concorrentes e podem mudar de estados de forma
independente. O estado do sistema total é o resultado dos estados de todos os seus objetos. Um diagrama de
estados no caso da junção (“assembly”) de objetos através de agregação (relação “and”) é uma coleção de
diagrama de estados, concorrentes, um para cada componente. Entretanto, em vários casos, os estados dos
componentes interagem; transições guardadas para um objeto podem depender do estado de um outro objeto.
A concorrência pode também ocorrer dentro do estado de um único objeto, quando o objeto pode ser
particionado em subconjuntos de atributos ou ligações, cada um com seu próprio sub-diagrama; na notação
adotada, os sub-diagramas são separados por linhas pontilhadas.

4.2.5. Modelagem dinâmica avançada


Ações de entrada e saída. Como alternativa a mostra ações nas transições, pode-se associar ações com a
entrada ou a saída de um estado. O nome da ação de entrada seguindo entry/ na caixa representando o estado e
o nome da ação de saída seguindo exit/ nesta são as notações adotadas.
Ações internas. Um evento pode forçar uma ação a ser realizada sem causar uma mudança de estado; o nome
do evento é escrito na caixa representando o estado, seguido por um “/” e o nome da ação. A figura abaixo
representa a notação utilizada para os diagramas de estado.
Transição automática. Existe a possibilidade de representar transições automáticas que disparam quando a
atividade associada ao estado fonte é completado; é representado por uma seta sem nome de evento. No caso do
estado não ter atividade associada, a transição sem nome dispara logo após ter entrado no estado. Chama-se este
tipo de transição automática de lambda ( ) transição.
Eventos de envio. Um objeto pode realizar uma ação de enviar um evento a um outro objeto. Um sistema de
objetos interage entre si. Na notação OMT, pode se utilizar a palavra Send ou uma linha pontilhada que leva da
transição a um objeto.
Sincronização de atividades concorrentes. Quando um objeto deve realizar duas ou mais atividades de forma
concorrente, é necessário dividir (“split”) o controle em partes concorrentes e depois juntá-las (“merge”),
completando as atividades antes da progressão do objeto para um próximo estado. Uma seta que se ramifica para
a divisão e uma seta com a extremidade ramificada para a junção são as representações na notação OMT.

Professor Luis Octavio - 35


CPC - Parte II – Análise e Projetos de Sistemas

4.3. O modelo funcional


O modelo funcional descreve os aspectos do sistema que dizem respeito com as transformações de
valores: funções, mapeamentos, restrições e dependências funcionais. Este modelo captura o que o sistema faz
sem levar em conta o como e o quando ele faz.
O modelo funcional é representado por vários diagramas de fluxo de dados (DFDs) que mostram as
dependências entre valores e o calculo de valores de saída a partir de valores de entrada e de funções. O modelo
funcional inclui também as restrições entre valores no modelo objeto.

4.3.1. Diagramas de Fluxo de Dados


O modelo funcional consiste de múltiplos diagramas de fluxo de dados que especificam o significado de
operações e restrições. Um diagrama de fluxo de dados (DFD) mostra a relação funcional dos valores calculados
pelo sistema, incluindo valores de entrada, saída e armazenamento de dados internos.
Um DFD contem processos que transformam dados, fluxos de dados que movimenta dados, objetos atores
que produzem e consomem dados, objetos armazenamento de dados que estocam os dados.
Processos. Um processo transforma valores de dados. Um processo é implementado como um método de uma
operação de uma classe de objetos. O objeto alvo é usualmente um dos fluxos de entrada, especialmente se a
mesma classe de objeto é também um fluxo de saída. Em alguns casos, o objeto alvo é implícito.
Fluxos de dados. Um fluxo de dados conecta a saída de um objeto ou de um processo a entrada de um outro
objeto ou processo Ele representa um valor de daos intermediário num calculo. O valor permanece sem mudança
no fluxo de dados.
Atores. Um ator é um objeto ativo que conduz o diagrama de fluxo de dados produzindo ou consumindo valores.
Atores são ligados as entradas e saídas de um diagrama de fluxo de dados. Eles podem serem vistos como fontes
e receptores de dados.

Estado 1
ação: atividade1 evento1 (atributos1) [condição] / ação Estado 2
entrada/ação2
• • •
saída/ação3
evento2 (atributos2)
evento/ação4

Classe de Objeto

Armazenadores de dados. Um armazenador de dados é um objeto passivo do diagrama de fluxo de dados que
armazena dados para uma cesso futuro.> como no caso de um ator, um armazenador não gera operações sobre
ele mesmo mas simplesmente responde a pedidos para armazenar e acessar dados. O acesso pode ser feito em
ordem diferente do armazenamento. Destaca-se que atores e armazenadores de dados são objetos que se
diferenciam pelo seu comportamento e uso; atores podem ainda serem implementados como dispositivos externos
e armazenadores como arquivos.
Diagramas de fluxo de dados aninhados. Um DFD é particularmente útil para mostrar a funcionalidade de alto-
nível de um sistema e sua quebra em unidades funcionais menores. Um processo pode ser expandido num outro
DFD no qual as entradas e saídas do processos o são também no novo diagrama. Eventualmente, o anhinhamento
de diagramas termina com funções simples que devem ser especificadas como operações.
Fluxos de controle. Um DFD não mostra quais caminhos são executados e em que ordem. Decisões e
sequenciamento são questões de controle que fazem parte do modelo dinâmico. As vezes, pode ser útil introduzir
o fluxo de controle no DFD. O fluxo de controle é uma variável booleana que indica quando um processo pode ser
realizado; o fluxo de controle (representado por uma linha pontilhada no DFD que vai de um processo que gera
uma variável booleana ao processo a ser controlado) não é um valor de entrada para o processo ele mesmo.

4.3.2. Especificando operações


Processos em DFD devem eventualmente ser implementados como operações sobre objetos. Para cada
nível baixo, um processo atômico é uma operação. Processos de nível elevado podem também ser considerados
operações. Apesar que uma implementação possa ser organizada de forma diferente da que o DFD representa por
causa de otimização. Cada operação pode ser especificada de várias formas como por exemplo: funções
matemáticas, tabelas de valores de entrada e saída, equações especificando saída em termos de entrada, pré e
pós condições, tabelas de decisão, pseudo-código e linguagem natural.

Professor Luis Octavio - 36


CPC - Parte II – Análise e Projetos de Sistemas

4.4. Relações entre modelos


Cada modelo descreve um aspecto do sistema mas contem referencias aos outros modelos. O modelo
objeto descreve a estrutura de dados sobre a qual os modelos dinâmico e funcional operam. As operações no
modelo objeto correspondem aos eventos no modelo dinâmico e as funções no modelo funcional.
O modelo dinâmico descreve a estrutura de controle dos objetos. As ações no diagrama de estados
correspondem as funções no diagrama funcional. Os eventos no diagrama de estados se tornam as operações no
modelo objeto.
O modelo funcional descreve as funções invocadas pelas operações no modelo objeto e ações no modelo
dinâmico. As funções operam sobre as valores de dados especificados pelo modelo objeto. O modelo funcional
mostra ainda as restrições sobre os valores objeto

5. Análise orientada a objetos


A fase de análise diz respeito ao entendimento e à modelagem da aplicação e do domínio no qual ela
opera. Esta fase focaliza o que necessita ser feito e não como deve ser feito. A etapa inicial da fase de análise
consiste no estabelecimento dos requisitos do problema a ser resolvido, fornecendo uma visão conceptual do
sistema proposto. O dialogo subsequente com o usuário, o conhecimento da área e a experiência adquirida do
mundo real são elementos adicionais que servem de entrada para a análise. A saída desta fase de análise é um
modelo “formal” que captura os aspectos essenciais do sistema: objetos e suas relações, fluxo dinâmico de
controle e transformação funcional de dados. No caso da metodologia OMT, obtém-se os modelos objeto, dinâmico
e funcional.

5.1. Modelo objeto


Para construir o modelo objeto, é necessário seguir os seguintes passos:
1. identificar objetos e classes;
2. preparar um dicionário de dados;
3. identificar associações (incluindo agregações) entre objetos;
4. identificar atributos de objetos e ligações;
5. organizar e simplificar classes de objetos utilizando herança;
6. verificar os caminhos de acesso;
7. iterar e refinar o modelo;
8. agrupar as classes em módulos.

5.1.1. Modelo dinâmico


Para construir o modelo dinâmico, é necessário seguir os seguintes passos:
1. preparar cenários de seqüências de interação típicas;
2. identificar eventos entre objetos;
3. preparar um rastro de eventos para cada cenário;
4. construir um diagrama de estados;
5. equiparar eventos entre objetos para verificar a consistência.

5.1.2. Modelo funcional


Para construir o modelo funcional, é necessário seguir os seguintes passos:
1. identificar valores de entrada e saída;
2. construir um DFD mostrando dependências funcionais;
3. descrever funções;
4. identificar restrições (i.e dependências funcionais) entre objetos;
5. especificar um critério de otimização

5.1.3. Acrescentando as operações


O estilo de análise apresentado não da ênfase nas operações; entretanto é necessário distinguir os vários
tipos de operações durante a fase de análise: operações a partir do modelo objeto, de eventos, de ações e
atividades no diagrama de estados, de funções (DFD).
6. Projeto orientado a objetos
O projeto orientado a objetos se divide em projeto do sistema e projeto do objeto, descritos sucintamente a
seguir.

6.1. Projeto do Sistema


O projeto do sistema consiste em tomar decisões de alto nível sobre o como o problema será resolvido e a
solução construída. O projeto de sistemas inclui decisões sobre a arquitetura do sistema i.e. sobre a organização
Professor Luis Octavio - 37
CPC - Parte II – Análise e Projetos de Sistemas
do sistema em subsistemas , a alocação de subsistemas a componentes de hardware ou de software e sobre a
política e a estratégia que formam o quadro no qual o projeto detalhada poderá ser desenvolvido.
O projetista do sistema deve tomar as seguintes decisões:
1. organizar o sistema em subsistemas, a partir das noções de camadas (subdivisão horizontal) e de partições
(subdivisão vertical);
2. identificar a concorrência inerente ao problema e definir as tarefas concorrentes;
3. alocar os subsistemas a processadores e tarefas;
4. escolher uma abordagem para gerenciar os armazenadores de dados;
5. determinar os mecanismos para manusear o acesso aos recursos globais;
6. escolher a implementação do controle no software;
7. determinar o manuseio das condições limites;
8. estabelecer as prioridades entre os compromissos.

6.2. Projeto do objeto


A fase de projeto de objeto determina as definições completas das classes e associações utilizadas na
implementação, bem como as interfaces e os algoritmos dos métodos utilizados par implementar as operações.
Nesta fase, são adicionados objetos internos para a implementação e otimizado as estruturas de dados e os
algoritmos. O projetista deverá escolher entre várias formas de implementação, levando em conta questões como
minimização do tempo de execução, da memória e outras medidas de custo. A otimização do projeto deve ainda
levar em conta as facilidades de implementação, manutenção e expansão.
Durante o projeto do objeto, o projetista deve realizar os passos seguintes:
1. combinar os três modelos para obter as operações sobre as classes;
2. projetar os algoritmos para implementar as operações;
3. otimizar os caminhos de acesso aos dados;
4. implementar o controle para as interações externas;
5. ajustar a estrutura de classes para adicionar a herança;
6. realizar o projeto das associações;
7. determinar a representação do objeto;
8. empacotar classes e associações nos módulos;
9. documentar as decisões de projeto.

Professor Luis Octavio - 38


CPC - Parte II – Análise e Projetos de Sistemas
Capítulo IV – Padrões de Projetos - Design Patterns

1. Definições
Padrões de Projeto segundo a Wikipédia: descrevem soluções para problemas recorrentes no
desenvolvimento de sistemas de software orientados a objetos. Um padrão de projeto estabelece um nome e
define o problema, a solução, quando aplicar esta solução e suas conseqüências.
Padrões de Prodeto segundo José Carlos Macoratti: são soluções para problemas que alguém um dia teve
e resolveu aplicando um modelo que foi documentado e que você pode adaptar integralmente ou de acordo com
necessidade de sua solução.

2. Exemplo
Por exemplo, você está programando seu revolucionário sistema e percebe que será necessário ter acesso à
uma instância de uma classe qualquer, e que esse acesso deve ser fácil e possível de ser feito em qualquer
parte/página de seus códigos. Ao invés de você quebrar a cabeça e pensar em como fazer isso, utilize uma
solução pronta! A solução para isso já existe - porque é uma situação muito comum em desenvolvimento de
programas e se tornou um padrão de projeto - e seu nome é Singleton!
Quer dizer, corroborando ainda mais com a filosofia do “Não reinvente a roda!” - já comentada no artigo
sobre frameworks -, os Padrões de Projeto existem para agilizar o desenvolvimento de aplicações e permitem que
você “economize neurônios”, pois são soluções mais ou menos prontas para os problemas mais ou menos comuns
do cotidiano de um programador.
E não se engane, pensado que padrões de projetos são “coisa de PHP”! Os design patters são soluções
para problemas de software e, pense bem, uma solução para problemas genéricos não pode ficar restrita a uma
linguagem específica. Portanto, conhecendo a solução que se quer, esta pode e deve ser aplicada não somente
em PHP, mas em Java, Ruby, C#, .NET, e qualquer outra que você queira.

3.Função dos Padrões de Projeto?


Você já deve ter percebido que os Design Patterns servem para mostrar (ou demonstrar) soluções prontas
para problemas que são comuns; soluções estas que podem ser implementadas em qualquer linguagem de
programação.
O importante dos Padrões de Projeto são as definições dos problemas e a “melhor saída” para cada um
deles. Através da análise de caso e de solução de uma situação, conhecendo os padrões de projeto você pode
decidir qual usar, como usar e porque usar um padrão de projeto - se realmente for conveniente para o caso em
foco.
Os padrões de projeto podem ser divididos por sua função ou escopo, sendo apresentados em 3 categorias
principais, quais sejam, Padrões de Criação, Padrões Estruturais e Padrões comportamentais. Cada uma
destas “categorias de padrões de projeto” contém os design patterns que são úteis a cada escopo.
Por exemplo, o padrão Singleton - que tem por objetivo garantir a existência de apenas uma instância de
uma classe, mantendo um ponto global de acesso ao seu objeto - pertence à categoria de Padrões de Criação; o
Adapter - que permite que classes com interfaces incompatíveis possam interagir entre si - pertence a Padrões
Estruturais; e assim por diante. Confira uma boa listagem de padrões de projeto por categoria na Wikipédia.
Dando uma olhadinha no código fonte e pesquisando rapidamente em alguns tópicos dos fóruns oficiais do
CodeIgniter, é possível observar que, dentre outros, alguns dos design patterns que o CodeIgniter implementa são:
1. MVC
2. Singleton
3. Factory
4. Adapter
5. Decorator
6. Strategy
Se alguém identificou mais algum padrão de projeto, basta comentar no artigo e eu complemento a listagem
dos design patterns que o CodeIgniter implementa.
Na prática - e falando genericamente - não faz muita diferença para quem utiliza o CodeIgniter saber quais
design patterns o framework usa nem exatamente como cada um deles funciona. Entretanto, saber disso auxilia
você a “montar a tela mental” do “todo” e ter uma noção de como a “mágica” do CodeIgniter funciona!

4. Padrões do Codelgniter
1. Model-view-controller (MVC) é um padrão de arquitetura de software. Com o aumento da
complexidade das aplicações desenvolvidas torna-se fundamental a separação entre os dados (Model)

Professor Luis Octavio - 39


CPC - Parte II – Análise e Projetos de Sistemas
e o layout (View). Desta forma, alterações feitas no layout não afectam a manipulação de dados, e
estes poderão ser reorganizados sem alterar o layout.
O model-view-controller resolve este problema através da separação das tarefas de acesso aos dados
e lógica de negócio, lógica de apresentação e de interacção com o utilizador, introduzindo um
componente entre os dois: o Controller. MVC é usado em padrões de projeto de software, mas MVC
abrange mais da arquitetura de uma aplicação do que é típico para um padrão de projeto.
2. Singleton é um padrão de projeto de software (do inglês Design Pattern). Este padrão garante a
existência de apenas uma instância de uma classe, mantendo um ponto global de acesso ao seu
objeto.
Muitos projetos necessitam que algumas classes tenham apenas uma instância. Por exemplo, em uma
aplicação que precisa de uma infraestrutura de log de dados, pode-se implementar uma classe no
padrão singleton. Desta forma existe apenas um objeto responsável pelo log em toda a aplicação que
é acessível unicamente através da classe singleton.
3. Factory method pattern (teste padrão de método de fábrica) é um teste padrão object-oriented do
projeto. Como outros testes padrões trata do problema de criar objetos (produtos) sem especificar a
classe exata do objeto que será criada. O teste padrão do projeto do método da fábrica segura este
problema definindo um método separado para criar os objetos, cujos os subclasses podem então
cancelar para especificar o tipo derivado de produto que será criado. Mais geralmente, o método da
fábrica do termo é usado frequentemente consultar a todo o método cuja a finalidade principal for
criação dos objetos.
4. Adapter (Wrapper) é um padrão de projeto de software ou de desenho que é utilizado para 'adaptar' a
interface de uma classe. O Adapter permite que classes com interfaces incompatíveis possam
interagir. Adapter permite que um objeto cliente utilize serviços de outros objetos com interfaces
diferentes por meio de uma interface única.
5. Decorator em programação orientação a objetos, o teste padrão do decorador é um teste padrão do
projeto que permita comportamento novo/adicional a ser adicionado dinâmicamente a uma classe
existente.
6. Strategy é um padrão de projeto de software cujo objetivo é representar uma operação a ser realizada
sobre os elementos de uma estrutura de objetos. O padrão Visitor permite definir novas operações
sem alterar as classes dos elementos sobre os quais opera. Definir uma família de algoritmos e
encapsular cada algoritmo como uma classe, permitindo assim que elas possam ter trocados entre si.
Este padrão permite que o algoritmo possa variar independentemente dos clientes que o utilizam.

Professor Luis Octavio - 40


CPC - Parte III – Banco de Dados
Capítulo I – Banco de Dados

1. Introdução
No início da década de 60, foram lançados os primeiros sistemas gerenciadores de bancos de dados (SGBD),
tendo como principal proposta o aumento na produtividade nas atividades de desenvolvimento e manutenção de
sistemas, até então realizadas de forma artezanal em linguagem de programão convencionais de primeira e
Segunda geração.
Oriundos do ambiente de mainframes, os SGBD tornaram-se mais populares e amigáveis com o advento da
microinformática. Cada vez mais as fronteiras entre esses dois mundosestreitam-se e a concorrência pelo domínio
do mercado de SGBD, tem levado seus diversos fabricantes a sofisticarem seus produtos. Cada nova versão
lançada, incorpora novidades como interfaces gráficas, ferramentas de apoio ao desenvolvimento, utilitários para
gerenciamento de BD e facilidades para extração de dados. Essa evolução vem tornando o trabalho de
programadores, analistas e usuários menos artezanal, com reflexos na qualidade e produtividade.
A literatura classifica os SGBD como HIERÁRQUICO, REDE e RELACIONAL. Essa classificação
representa a evolução desses produtos no curso da história. Atualmente, o mercado é dominado pelos SGBD
RELACIONAIS e caminha para a colocação em escala comercial dos SGBD ORIENTADOS A OBJETOS.
Este texto introduz a teoria de BANCOS DE DADOS, a partir de conceitos básicos da teoria de arquivos
que perpetuaram-se na terminologia de banco de dados. Na sequência aborda superficialmente os modelos
HIERÁRQUICOS e REDE (pôr razões de mercado) e forma mais aprofundada o MODELO RELACIONAL, o qual
designaremos neste texto pela sigla SGBD-R.

2. Conceitos Básicos
Para compreender com maior facilidade os conceitos relativos a BANCOS DE DADOS é de suma
importância revisarmos alguns conceitos básicos referentes à teoria e terminologia de arquivos convencionais, haja
vista, que os primeiros SGBD foram criados a partir do aperfeiçoamento de sistemas gerenciadores de arquivo, e
ainda utilizam muito mais da base conceitual e da terminologia de arquivos.
2.1 Arquivo
Um arquivo é uma coleção de REGISTROS do mesmo tipo, ou seja, referentes a um mesmo assunto e com o
mesmo formato padrão (layout). Constitui o componente do sistema no qual são armazenados os dados, que
combinados através dos programas servem de base para a geração da informação desejada pelo usuário, através
de relatórios e consultas on-line.
Um sistema de controle de notas, pôr exemplo, pode armazenar seus dados em diversos arquivos, cada um
contendo informações sobre um determinado item do sistema: ALUNO, PROFESSOR, MATÉRIA, NOTA, etc.
Essas informações podem ser combinadas através de programas para gerar, pôr exemplo, o BOLETIM
ESCOLAR, a PAUTA ou uma tela de CONSULTA DE NOTAS.
2.2. Registro
Um registro é constituído pôr conjunto de campos valorados (contendo dados). Consiste na unidade de
armazenamento e recuperação da informação em um arquivo. Geralmente, os registros de um arquivo possuem
um formato padrão (layont), definido pela sequência, tipo e tamanho dos campos que o compõem. Porém, algumas
linguagens de programação permitem a criação de registros com layouts diferentes em um mesmo arquivo,
recurso este que raramente é utilizado.

2.3. Campo
É a unidade básica formada de um registro. Constitui a célula da informação. É a menor porção de um
arquivo que pode ser referenciada pôr um programa.
Cada campo possui NOME, TIPO E TAMANHO. Os tipos de campo mais comuns são:

NUMBER 1. Armazena somente números


2. Pode conter casas decimais
3. Pode ser utilizado em operações matemáticas
CHAR ou 1. Pode armazenar letras, números, e caracteres
ALFANUMÉRICO especiais
DATE 1. Armazena datas fazendo consistência automática
MEMO ou LONG 1. Armazena textos em formato livre

A figura a seguir sintetiza os conceitos de ARQUIVO, REGISTRO e CAMPO:

Professor Luis Octavio - 1


CPC - Parte III – Banco de Dados
Arquivo Aluno

LAYOUT
CAMPOS MATRICULA NOME ENDEREÇO DT – NASC
TIPO e TAM. NUMBER (03) CHAR (30) CHAR (50) DATE
001 José SQS 308... 23/08/78
REGISTROS 002 Maria QND 14.... 25/09/70
003 Ana SQN 410.... 10/08/85
. . . .

2.4. Chave Primária (Primary Key – PK)


A CHAVE PRIMÁRIA (ou simplesmente CHAVE) é o identificador único de um registro em um arquivo.
Pode ser constituída de um campo (CHAVE SIMPLES) ou pela combinação de dois ou mais campos (CHAVE
COMPOSTA), de tal maneira, que não existam dois registros no arquivo com o mesmo valor de chave primária.
Em regra, todo arquivo deve possuir uma chave primária, que permita a identificação inequívoca do
registro, especialmente, para dar maior consistência aos processos de inclusão, alteração e exclusão de dados.
Para que não ocorram duplicatas nos valores da chave, os campos que a compõem são de
PREENCHIMENTO OBRIGATÓRIO (NOT NULL).
Na escolha da chave primária de um arquivo deve-se buscar campos que possuam ESTABILIDADE no
valor armazenado. A escolha do NÚMERO DO TELEFONE como chave de um cadastro de clientes, pôr exemplo,
seria inadequada, pôr que esse valor pode mudar com frequência. Sem considerar que o cliente pode Ter mais de
um telefone...
Deve-se também evitar a escolha de campos que possam causar AMBIGUIDADE em relação aos valores
nele contidos. Nesse sentido, seria inadequado a escolha do campo NOME para chave de um cadastro de clientes,
haja vista, que um mesmo nome pode ser escrito de várias formas, Pôr exemplo: LUÍS, LUIZ, LOYS, LOUYS.
Se desejássemos cobrar uma fatura de um cliente com um nome como esse, a probabilidade de errarmos o
cliente seria grande. Além disso, a extensão do campo (30 ou mais caracteres) é um outro aspecto que aumenta a
possibilidade de erros.
DICAS PARA ESCOLHA DA CHAVE PRIMÁRIA:
1. Todo arquivo deve possuir uma chave primária.
2. VALOR ÚNICO para cada registro.
3. SIMPLES ou COMPOSTA.
4. Campos de PREENCHIMENTO OBRIGATÓRIO.
5. Valor ESTÁVEL.
6. Não AMBÍGUO.
7. PEQUENA EXTENSÃO (menor possível).
8. De preferência CAMPOS NUMÉRICOS
2.5. Chave Secundária
A chave secundária pode ser formada pôr um campo ou pela combinação de campos
(SIMPLES/COMPOSTA). É utilizada como parâmetro (filtro) para seleção de registros no arquivo em consultas,
emissão de relatórios ou processos de atualização simultânea de um grupo de registros.
Por exemplo, para aumentarmos o valor do salário dos analistas em 10%, poderíamos utilizar o campo
FUNÇÃO do arquivo CADASTRO DE FUNCIONÁRIOS como parâmetro (chave secundária) no processo de
seleção dos registros a serem alterados.
Em síntese, a chave secundária é o campo ou combinação de campos do arquivo que permite a
recuperação de mais de um registro no arquivo. Portanto, não possui a característica de unicidade proposta para a
chave primária.
A figura a seguir ilustra os conceitos de CHAVE PRIMÁRIA e SECUNDÁRIA
ARQUIVO ALUNO
PK Chave Secundária
MATRICULA NOME ENDEREÇO DT – NASC
001 José SQS 308... 23/08/78
003 Maria QND 14.... 25/09/70
002 Ana SQN 410.... 10/08/85
005 José GAMA 05/04/76
. . . .
Professor Luis Octavio - 2
CPC - Parte III – Banco de Dados

Acesso via CHAVE SECUNDÁRIA (NOME) no arquivo ALUNO:


PROGRAMA X
INÍCIO....
.
.
SE NOME = “JOSÉ’’
ENTÃO IMPRIMIR
....
.
.
FIM
2.6. Chave Candidata
Pode ocorrer uma situação em que mais de um campo satisfaça a condição de chave primária. Constituindo
duas ou mais CHAVES CANDIDATAS. Neste caso, o analista deverá eleger somente uma delas como CHAVE
PRIMÁRIA, as demais permanecerão na condição de CANDIDATAS, indicando que tratam-se de campos de
preenchimento obrigatório e com valores únicos para cada registro, o que será garantido através de mecanismos
de integridade de coluna, que veremos no capítulo relativo a banco de dados.
A figura a seguir mostra um exemplo de arquivo com CHAVE CANDIDATA

ARQUIVO ALUNO

Chave primária Chave candidata

MATRICULA NOME ENDEREÇO CPF


001 José SQ 308..... 72993246500
003 Maria QND 14..... 12354789065
002 Ana SQN 410... 09876587659
005 José GAMA.... 28746503645
. . . .

2.7. Local Database


É a base de dados que se torna disponível quando o BD é carregado

2.8. Sinônimo
É um apelido (alias) para uma tabela, visão ou unidade de programa. A utilização de um alias se aplica em
situações onde se deseja ocultar a verdadeira localização de uma tabela ou seu proprietário, facilitar um acesso a
um objeto por meio do uso de um outro nome para ele.

2.9. Snapshots
É a cópia de uma parte ou de toda uma tabela. Ele reflete o estado atual da tabela que está sendo copiada.
A tabela de origem é conhecida como Master Tab. Existem dois tipos de snapshots:
o Read-Only: não permite alterações.
o Updatable: permite alterações na cópia local e periodicamente atualiza a Master Table.
2.10. Users
São as pessoas que acessam o banco de dados e recebem atribuições que limitam o seu tipo de acesso.
Esses usuários são criados pelo Administrador de Banco de Dados que o atribui uma senha de acesso.
2.11. Roles (Papel)
É um método de distribuir privilégios para se trabalhar um banco de dados. Quem cria um objeto de BD pode
distribuir os privilégios ou os privilégios podem ser atribuídos para um personagem (role). Se um personagem é
atribuído a um usuário ele obtém todos os privilégios associados com aquele personagem.
2.12. Índices
São componentes do BD destinados a agilizar o acesso aos dados. Eles funcionam de forma análoga a um
índice remissivo de um livro. Em vez de folhear o livro seqüencialmente, para achar uma página onde está uma
determinada informação, é mais rápido do livro correspondente ao índice, localizar o assunto desejado e obter o
número exato da página. No caso de um BD, um índice pode ser associado a uma coluna específica ou a uma
combinação de várias colunas..

Professor Luis Octavio - 3


CPC - Parte III – Banco de Dados
2.13. Visões
É uma tabela virtual cujo conteúdo foi definido por uma consulta (query) ao banco de dados. A visão não é uma
tabela física, mas um conjunto de instruções que retornam um conjunto de dados.
2.14. Stored Procedure
Os dados de um banco de dados podem ser acessados somente a partir da execução de comando de uma
linguagem de BD. Ao criar uma aplicação para servir de interface com o BD, o desenvolvedor pode optar por criar
um programa SQL que é armazenado localmente e enviado ao servidor para ser executado lá, ou então criar e
manter os programas no próprio servidor em stored procedure, que podem ser acionadas por um programa na
máquina cliente. Uma stored procedure pode aceitar parâmetros para serem processados. Contudo ao contrário de
uma função, elas não retornam valor.
2.15 Triggers
São stored procedures, rotinas armazenadas no banco de dados, que são executadas quando alguma tabela
é modificada. Ele é executado em resposta a algum evento e não por uma chamada feita pelo usuário. Ele é
automaticamente executado quando um dado da tabela é alterado em decorrência da execução de um comando
SQL do tipo INSERT, UPDATE ou DELETE.

3. Organização de Arquivos
O tema organização de arquivos refere-se a forma como os registros são armazenados em um arquivo
baseado em computador. Confunde-se com MÉTODO DE ACESSO, que consiste na forma como esses podem
ser recuperados. A organização do arquivo determina os métodos de acesso que podem ser utilizados na
recuperação dos registros, mas tratam de coisas distintas.
Apesar de este ser um assunto muito abrangente e com muitas variantes em termos de abordagem,
trataremos de apenas três tipos de organização (SEQUÊNCIAL, SERIAL E INDEXADA) e seus respectivos
métodos de acesso. Essa escolha baseia-se na necessidade de discutirmos alguns conceitos essenciais para o
estudo do modelo Relacional de banco de dados, que constitui o objeto principal desse texto.
3.1. Métodos De Acesso
Para recuperarmos um registro em um arquivo, podemos utilizar acesso SEQUÊNCIAL ou DIRETO.
O método SEQUÊNCIAL de acesso é o mais tradicional e consiste em efetuar a leitura dos registros, um
após outro, comparando o ARGUMENTO DE PESQUISA, com valor do campo CHAVE (primária ou secundária) no
registro corrente, até encontrar os registros desejados ou final de arquivo.

Exemplo:
PROGRAMA Y
INÍCIO....
.
Repita até fim
Ler registro chave secundária (campo chave)

SE NOME = ‘’JOSÉ’’ argumento de pesquisa


ENTÃO IMPRIMIR
Fim repita (volte a ler)
FIM DO PROGRAMA

O método DIRETO consiste em recuperar o (s) registro(s) desejado(s), sem a necessidade de efetuar a
leitura dos registros que o(s) antecede(m), o que pode ser feito através de um ÍNDICE (que abordaremos no item
organização indexada) ou com o auxílio de um algorítmo de RANDOMIZAÇÃO que localiza o registro, calculando a
posição ocupada pelo registro no disco, com base no valor do argumento de pesquisa, que deve ser um campo
numérico.
Em ambos os casos, a localização do registro ocorre a cargo do gerenciador de arquivos, de maneira
transparente para o programador, que só precisa escolher a organização adequada para o arquivo e fornecer no
programa o argumento de pesquisa.

Professor Luis Octavio - 4


CPC - Parte III – Banco de Dados
Exemplo:

PROGRAMA Z
INÍCIO....
.
.
ABRIR ARQUIVO ALUNO INDEXADO POR NOME
.
NOME= “JOSÉ” argumento de pesquisa
LOCALIZAR REGISTRO acesso direto (indexado)
SE ENCONTROU REGISTRO
ENTÃO IMPRIMIR
.
.
FIM DO PROGRAMA

3.2. Organização Seqüencial


A ORGANIZAÇÃO SEQÜENCIAL caracteriza-se pela existência de uma CHAVE DE ORDENAÇÃO. Essa
chave determina a ordem em que os registros são armazenados e pode ser SIMPLES ou COMPOSTA por dois ou
mais campos. Geralmente, coincide com a chave primária, mas não obrigatoriamente.
A organização seqüencial somente permite o ACESSO SEQÜENCIAL.
A figura a seguir apresenta um arquivo com ORGANIZAÇÃO SEQÜENCIAL e CHAVE PRIMÁRIA
(MATRÍCULA) distinta da CHAVE DE ORDENAÇÃO (NOME - ordem alfabética).
ARQUIVO ALUNO
Chave primária chave de ordenação

MATRICULA NOME ENDEREÇO DT – NASC


001 Ana SQS 308... 23/08/78
003 José QND 14.... 25/09/70
002 José SQN 410.... 10/08/85
005 Maria GAMA 05/04/76
. . . .
. . . .

3.3. Organização Serial


Nesta forma de organização os registros são armazenados de acordo com a ordem de inclusão. O arquivo
possui chave de ordenação, portanto não existe preocupação com a ordem de armazenamento dos registros. No
entanto, é sempre recomendável o arquivo possua uma chave primária.
A organização serial somente permite o ACESSO SEQÜENCIAL. Não deve ser utilizada em processos de
exclusão e alteração de registros na modalidade bacth (atualização em lote), pois degrada a performance..
É muito utilizada em processos de inclusão de registros onde não haja preocupação em manter a seqüência
dos mesmos (“pools” de digitação). É também empregada no arquivo de dados que serve de base para a
organização indexada, que estudaremos no próxima item.
A figura a seguir apresenta um arquivo com ORGANIZAÇÃO SERIAL. Note que ele não possui CHAVE DE
ORDENAÇÃO.

ARQUIVO ALUNO
chave primária

MATRICULA NOME ENDEREÇO DT NASC.


005 Maria SQS 308..... 23/08/78
003 José QND 14..... 25/09/70
002 Ana SQN 410... 10/08/85
001 José GAMA.... 05/04/76
. . . .

Professor Luis Octavio - 5


CPC - Parte III – Banco de Dados
3.4. Organização Indexada
Nesta forma de organização, os registros são armazenados em um arquivo de dados com organização
serial e para cada campo (ou combinação deles) através do qual se deseja obter acesso direto (indexado) deve-se
criar um arquivo de índice (processo de indexação).
Um mesmo arquivo de dados pode possuir diversos arquivos de índice a ele associados. Porém, apesar da
flexibilidade para a criação de índices, esse recurso deve ser utilizado com critério, pois a manutenção de muitos
índices pode degradar a performance no processo de atualização do arquivo. Ou seja, ganha-se na consulta on-
line, mas pode-se perder na atualização de dados.
O arquivo de índice é composto basicamente por duas colunas. A primeira corresponde ao campo utilizado no
processo de indexação (endereço lógico) e a Segunda armazena um valor (endereço físico) que serve como
referência, para que o gerenciador de arquivos localize o registro no disco magnético.
Os registros dos arquivos índice são ordenados pelo endereço lógico. Portanto, se utilizarmos um algoritmo
de leitura seqüêncial em um arquivo indexado por nome, por exemplo, obteremos os registros em ordem
alfabética, mesmo sendo o arquivo de dados um arquivo serial. Ou seja prevalece a ordem do índice. Porém esse
exemplo, a performance do arquivo indexado seria menor, se comparada a de um arquivo seqüencial por nome.
Sempre que um arquivo índice for referenciado pôr um programa, ele será carregado para memória
principal, o que torna desprezível o tempo de busca dos registros nesse arquivo. Além disso, o algoritmo utilizado
na busca é o de pesquisa binária, o que reduz ainda mais o tempo.
Os índices constituídos com base no valor da chave primária ou candidata são conhecidos como ÍNDICES
PRIMÁRIOS e os demais como ÍNDICES SECUNDÁRIOS.
Em resumo, a organização indexada é formada pela combinação de pelo menos um arquivo de dados e um
ou mais arquivos de índice.
A figura a seguir apresenta o cenário da ORGANIZAÇÃO INDEXADA.

ARQUIVO ALUNO

ÍNDICE PRIMÁRIO
MAT TSL
R
001 220
002 321
003 231
005 110
.
TRILHA, SETOR E LADO DE DISCO
(endereço físico)

chave primária (endereço lógico)

TSL MATR NOME ENDEREÇO DT NASC


110 005 Maria SQS 308..... 23/08/78
231 003 José QND 14..... 25/09/70
321 002 Ana SQN 410... 10/08/85
220 001 José GAMA.... 05/04/76
331 . . . .

ÍNDICE SECUNDÁRIO
NOME TSL
Ana 321
José 220
José 231
Maria 110
. 331

Professor Luis Octavio - 6


CPC - Parte III – Banco de Dados
4. Sistema Gerenciador de Banco de Dados - SGBD
A expressão BANCO DE DADOS, é coloquialmente empregada com os mais diversos significados, de tal
sorte que, ao indagarmos de alguém sobre o BANCO DE DADOS com o qual trabalha em sua empresa,
poderemos obter as seguintes respostas:
1. Trabalho com ORACLE, ACESS, SQL SERVER, SYBASE, etc..
2. Trabalho com o banco de dados de PESSOAL, MATERIAL ou FINANÇAS.
3. Trabalho com o CADASTRO DE PESSOAL, SISTEMA DE VENDAS, etc.

Para evitar conflitos terminológicos, definimos a seguir três expressões, consagradas na literatura
clássica, que seriam melhor aplicadas a cada uma das situações anteriores.

4.1. Sistema Gerênciador de Banco de Dados – SGBD


Essa expressão estará corretamente empregada, quando utilizada para designar o SOFTWARE utilizado para
criar um BANCO DE DADOS. Portanto tratando-se de SGBD estaremos nos referindo a produtos como ACCESS,
ORACLE, SYBASE, SQL SERVER, ADABAS, etc.
4.2.Banco de Dados – BD
Esse enunciado refere-se a um conjunto de informações relacionadas, que são armazenadas no computador e
recuperadas com a utilização de recursos de um SGBD. Essas informações devem ser estruturadas, de tal
maneira, que independam de aplicações específicas. Ou seja, um BD de PESSOAL, adequadamente estruturado,
pode fornecer dados, tanto para um sistema de Folha de pagamento, quanto para um sistema de Treinamento de
Recursos Humanos.
4.3. Sistema Em Banco de Dados – SBD
Essa expressão refere-se às APLICAÇÕES desenvolvidas para atender às necessidades específicas da
empresa, que cessam um ou mais DB para leitura ou atualização de informações. Tome como exemplo de
aplicações específicas os sistemas de folha de pagamento e Treinamento de Recursos Humanos, citados no item
anterior.

5. Objetivos de Bancos De Dados


O desenvolvimento da tecnologia de banco de dados tem se pautado por buscar alcançar, como objetivo
permanente o aumento de produtividade nas atividades de desenvolvimento e manutenção de sistemas. Nesse
sentido os fabricantes de SGBD vem dotando seus produtos com mecanismos que facilitam a adaptação do BD às
novas necessidades que surgem no dia a dia e que reduzem o trabalho de programação. Aliado a esses dois
fatores existe toda uma filosofia que orienta os técnicos na escolha do melhor produto para a sua empresa e no
trabalho de projeto de banco de dados.
Dessa filosofia destacamos, a seguir, alguns objetivos de BD, os quais um profissional deve Ter em mente
ao lidar com essa tecnologia.
5.1. Independência de Dados
Os SGBD devem ser dotados de recursos que possibilitem a descrição das estruturas de dados (layout de
arquivos e/ou tabelas) de forma independente dos procedimentos de manipulação (leitura e gravação) de dados no
BD. Esse objetivo visa tornar transparente para os programas que acessam o BD as alterações que, por ventura,
venham a ocorrer nas estruturas de dados, como por exemplo o acréscimo de um novo campo de informação ao
banco. Da mesma forma, alterações em lógicas de programas que acessam o BD não devem afetar as estruturas
de dados.
Quanto maior for o grau de independência de dados, menor será o tempo em que o BD ficará fora de
operação para atividades de manutenção como, por exemplo, recompilação.
Até hoje, a maneira mais eficiente adotada pelos fornecedores de SGBD para implementação desse
objetivo foi a utilização do SQL (Structured query languages) nos produtos que seguem o Modelo Relacional. O
SQL possui grupos de comandos específicos e independentes para as tarefas de criação e alteração de tabelas
(DDL – data definition language) e leitura e atualização do BD (DML –data manipulation language)
5.2.Compartilhamento de Dados
Consiste na reutilização de dados do BD pelo maior número possível de aplicações dentro da empresa.
Nesse sentido, os dados do BD devem ser muito bem planejados e estruturados. Portanto, este objetivo de banco
de dados esta mais ligado a atividade de análise e projeto de BD.
O compartilhamento de dados visa diminuir a redundância de dados, considerando-o como um recurso da
empresa e não propriedade de setores isolados da organização.
Para implementar o compartilhamento de dados é necessário que a empresa disponha de recursos de
rede, que permitam colocar o BD ao alcance dos diversos usuários. Além disso, é necessário que o SGBD possua
um competente sistema de segurança, para que se estabeleça a privacidade de dados, através de mecanismos
de restrição de acesso.

Professor Luis Octavio - 7


CPC - Parte III – Banco de Dados
5.3.Menor Redundância de Dados
Redundância de dados consiste na repetição de um mesmo dado em diversos arquivos (tabelas) de um
sistema, banco de dados, ambiente computacional ou empresa. Como exemplo, pode-se tomar o ocorrência do
dado “NOME DO FUNCIONÁRIO”, em bases de dados não compartilhadas dos sistemas de CADASTRO, FOLHA
DE PAGAMENTO e TREINAMENTO de uma empresa.
A redundância é danosa para o ambiente computacional, pois aumenta os custos com o armazenamento
de dados, com o pessoal para manutenção de sistema.
Além disso, a redundância gera inconsistência de dados, ou seja, o dado redundante extraído a partir de
arquivos diferentes apresenta valores divergentes. Tal fato, pode afetar a credibilidade do usuário no sistema e no
pessoal de informática.
5.4.Privacidade de Dados
O COMPARTILHAMENTO DE DADOS leva um grande número de usuários, com funções diversificadas na
empresa, a acessar um mesmo banco de dados. Nesse contexto, o objetivo de privacidade de dados ressalta a
preocupação que o projetista de BD deve ter em vedar o acesso de usuários não autorizados a informações
sigilosas ou de acesso restrito.
Nesse sentido, o sistema de segurança dos SGBD, devem possuir meios para que o projetista possa
definir perfis diferenciados de acesso ao BD, com a criação de grupos de usuários e atribuição de direitos de
acesso a esses grupos, a partir da utilização de senhas.
5.5.Segurança de Dados
A segurança das informações armazenadas no BD pode ser encarada sob dois prismas: SEGURANÇA
LÓGICA e SEGURANÇA FÍSICA.
A SEGURANÇA LÓGICA é alcançada com a utilização dos mecanismos de restrição de acesso disponíveis
nos SGBD para implementação do objetivo de privacidade de dados, tais como senhas e sistemas de LOG e
AUDIT que registram dados sobre as operações que são efetuadas no BD (data, hora, usuário,comando,etc.).
A SEGURANÇA FÍSICA dos dados é obtida a partir de utilitários e aplicativos que os fabricantes colocam
em seus produtos, visando facilitar o trabalho de proteção aos dados contra danos físicos, que podem ser
causados pôr falhas de hardware ou queda na rede. Nessa linha destacam-se as ROTINAS DE BACKUP,
GRAVAÇÃO COM ESPELHAMENTO e SISTEMAS DE MONITORAÇÃO DE TRANSAÇÕES DISTRIBUÍDAS
(TWO-PHASE-COMMIT).
5.6.Tratamento de Concorrência
Este objetivo de BD aborda o aspecto do acesso simultâneo de dois usuário a um mesmo conjunto de
informações. O SGBD deve possuir mecanismos para a identificação e tratamento desses acessos concorrentes,
para garantir a consistência das informações do BD no sentido de sua veracidade.
Os sistemas de bloqueio (LOCK) e desbloqueio (UNLOCK) são os mecanismos utilizados para evitar que
uma informação que está sendo manipulada pôr um usuário (“USU1”) seja alterada por outro (“USU2”). Enquanto o
“USU1” dela se utiliza o “USU2”, não terá acesso a mesma ou o terá apenas para leitura e receberá um aviso do
SGBD de que a informação está sendo acessada por outro usuário e pode ser modificada.
Existem vários níveis de LOCK. As opções variam conforme o produto (SGBD) analisado, sendo que os
mais comuns ocorrem a nível de tabela, página (conjunto de registros) e linha (nível mais baixo).
Cabe lembrar que o nível de bloqueio influi na performance do SGBD em ambientes de missão crítica (altos
índices de acesso concorrente), sendo que quanto menor o nível de LOCK, a performance tende a ser melhor.
Ressalta-se que além desse, existem outros fatores que influenciam na performance do SGBD.
5.7.Integridade de dados
A Integridade de dados refere-se a mecanismos que estão disponíveis nos SGBD, que garantem a
consistência dos dados armazenados no SGBD, segundo parâmetros de validação, especificados no momento de
criação do BD, em conjunto com as estruturas de dados.
Esse objetivo só se tornou disponível, como recurso do SGBD, com o advento dos modelos Relacionais e
consta como pré-requisito para enquadramento de produtos nessa categoria de SGBD.
No capítulo dedicado aos SGBD relacionais trataremos esse assunto com maior riqueza de detalhes.

6. Modelo Hierárquico
Os primeiros SGBD lançados no mercado foram os do tipo HIERÁRQUICO. Nessa categoria, o
SOFTWARE de maior aceitação, no mercado brasileiro, foi o IMS da IBM.

Professor Luis Octavio - 8


CPC - Parte III – Banco de Dados
6.1.Limitações dos modelos HIERÁRQUICOS
a)Relacionamentos, no máximo, de grau “1:N”. O processo de implementação dos relacionamentos do tipo M:N.
ocasiona alto grau de redundância e/ou torna-se ineficaz.

SEGUIMENTO
RAIZ FORNECEDOR FORNECEDOR
1 N

N N
FATURA PRODUTO

b) O banco de dados só pode ter um SEGMENTO RAIZ e cada SEGMENTO FILHO pode ligar-se a um único
SEGMENTO PAI.

PRODESSO PROFESSOR ALUNO


R
1 1 1 1

N N N N
ALUNO MATÉRIAS MATÉRIAS

c)Não implementam AUTO-RELACIONAMENTOS.

PEÇA

COMPÕE
d) Não permitem dupla ligação entre duas entidades:

FORNECEDOR

1 1
FORNECE FABRICA

N N

PEÇA

e) Estruturas percorridas somente no sentido de cima para baixo. No exemplo abaixo, poder-se-ia facilmente listar
“FATURA” a partir da entidade “CLIENTE”, porém, o caminho inverso não seria possível.

Professor Luis Octavio - 9


CPC - Parte III – Banco de Dados

CLIENTE CLIENTE

1 1

N N

FATURA FATURA

7. Modelo Rede
Os SGBD do modelo REDE corrigiram as limitações dos HIERÁRQUICOS e mereceram a formação de um
grupo da CODASYL. (Conference on Data Systems Languages) designado pela sigla DBTG (Data Base – Task
Group). Assim, esse modelo ficou também conhecido como CODASYL ou DBTG. O relatório final do DTBG data
de Abril de 1971.
Como exemplos de SGBD/REDE, que seguiram o padrão CODASYL, citamos: DMS-1100 da UNIVAC, IDS
da Honeywell, DBMS da DEC e o IDMS da Cullinet, que mais tarde foi estendido incorporando uma visão
relacional dos dados e algumas operações relacionais (IDMS-R).
7.1. Características dos Modelos Rede Codasyl
a) Os RELACIONAMENTOS são do tipo BINÁRIOS (duas entidades), possuem nome e são
IMPLEMENTADOS através da criação de SET’s. Cada SET possui uma entidade pai (OWNER) e outra filho
(MEMBER).

OWNER
FORNECEDOR
1 criação do SET PAGA SET NAME is paga
SET PAGA OWNER IS fornecedor
Na ddl do SGBD MEMBER IS fatura

N
MEMBER
FATURA
b) Os SET’s possuem internamente ponteiros físicos (FIRST, LAST NEXT, PRIOR, OWNER) que relacionam os
registros e permitem a navegação no banco de dados com alta flexibilidade.

REGISTRO OWNER OWNER


OWNER

PRIOR

FIRST REGISTRO PRIOR


MENBER
NEXT REGISTRO
LAST MENBER

c) As estruturas podem ser percorridas nos dois sentidos – de pai para filho (através dos ponteiros NEXT, FIRST e
LAST) e no sentido inverso (através dos ponteiros PRIOR e OWNER).

Professor Luis Octavio - 10


CPC - Parte III – Banco de Dados

CLIENTE

1
FIRST PRIOR
NEXT OWNER
LAST N

FATURA

d) Um registro filho (MEMBER) pode relacionar-se com mais de um registro pai (OWNER), caracterizando REDE,
que serve como designação para o modelo de banco de dados em questão. A estrutura REDE é usada na
implementação dos relacionamentos do tipo “M:N”, que são transformados em dois relacionamentos do tipo “1:N”,
através da criação de uma ENTIDADE ASSOCIATIVA.
OWNER 1 OWNER 2
PROFESSOR PROFESSOR ALUNO
N
1 1
SET1 PROF-MAT SET2 ALUNO-MAT
N N MEMBER N

ALUNO MATÉRIAS

ENTIDADE ASSOCIATIVA
e) Permitem dupla ligação entre duas entidades. Pelo exemplo abaixo poderíamos saber todas as peças que o
FORNECEDOR fornece e quais são as que ele fabrica.

FORNECEDOR

1 1
SET1 SET2
FORNECE FABRICA
N N
PEÇA
f) O AUTO-RELACIONAMENTO é transformado em relacionamento BINÁRIO simulando-se uma entidade OWNER
ou MEMBER, conforme o caso. A entidade simulada deve conter o ATRIBUTO CHAVE e os PONTEIROS a ela
inerentes.

É GERENCIADO GERENTE

N 1

FUNCIONÁRIO

1 N

GERÊNCIA
FUNCIONÁRIO

Apesar das características técnicas positivas já evidenciadas, os modelos Rede são pouco flexíveis no que
se refere a alterações nas estruturas de dados, sua cultura é de difícil assimilação pelo usuário final e até mesmo

Professor Luis Octavio - 11


CPC - Parte III – Banco de Dados
por técnicos. Além disso esses SGBD apresentam alguns problemas de desempenho e na manutenção de
ponteiros.
Em função dessas dificuldades e do salto tecnológico que experimentamos a partir da popularização dos
microcomputadores, os SGBD Rede cederam espaço para o Modelos Relacionais, que hoje constituem-se no
padrão de mercado.
8. Normalização
A normalização é a parte mais importante no estudo de Banco de Dados. Com ela construiremos nossas
tabelas, definindo os campos e relacionamentos entre as mesmas.
Para muitos a normalização é desnecessária, isso porque, ela é feita no papel, sem o uso do computador.
Errados são os que pensam assim, pois só com a normalização teremos um Banco de Dados sólido e sem erros.
Para iniciar o estudo da normalização, tome como base o exemplo abaixo:
Exemplo: construa um banco de Dados para os funcionários de uma determinada empresa. Para a
empresa é necessária que o Banco de Dados contenha os seguintes dados:
1. Número de Empregado (Mat)
2. Primeiro Nome (Nome)
3. Sobrenome (Sobren.)
4. Endereço (End)
5. Cidade (Cidade)
6. Estado (Est.)
7. Data de Nascimento (Nasc)
8. Dependentes (Depend.)
9. Cargo (Cargo)
10. Salário (Salário)
Obs: na empresa o salário depende do cargo.
Primeiramente, construiremos uma tabela (chamada de tabelão) não normalizada com os dados do
exemplo.

Campo
Repetido

Mat. Nome Sobren. End. Cidade Est. Nasc. Depend. Depend. Cargo Salário
001 Luis Alves SQN 306 Brasília DF 23/09/71 Rui Pedro Analista 3.000
002 Pedro Ultra SQS 205 Brasília DF 23/05/73 Antônio Júnior Digitador 500
003 Ana Azevedo SQN 308 Brasília DF 24/06/70 Operador 700
004 Sônia Gomes QI 20 Guará DF 15/09/68 Carlos Analista 3.000
005 Ana Azevedo QI26 Brasília DF 15/09/68 Antônio Digitador 500

Note que todos os campos, com exceção de Mat. (Número de Empregado), possuem conteúdos que
podem se repetir. Para começarmos a normalização definiremos um campo de comparação, que não se repita.
Este campo será a famosa Chave Primária.
A tabela mostrada acima, não está normalizada, isto porque possui um campo que se repete. Este campo
é Depend. (Dependentes).
8.1. Primeira Forma Normal (1FN)
Para realizarmos a 1FN a tabela terá que estar não-normalizada. Na 1FN eliminaremos os grupos (campos)
repetidos. Para fazer isto, basta transformar colunas em linha. Ou seja. Criaremos um novo registro com os
mesmos campos que não se repetiam, só mudando o campo repetido.
Veja abaixo:
Mat. Nome Sobren. End. Cidade Est. Nasc. Depend. Cargo Salário
001 Luis Alves SQN 306 Brasília DF 23/09/71 Rui Analista 3.000
001 Luis Alves SQN 306 Brasília DF 23/09/71 Pedro Analista 3.000
002 Pedro Ultra SQS 205 Brasília DF 23/05/73 Antônio Digitador 500 Linhas
002 Pedro Ultra SQS 205 Brasília DF 23/05/73 Antônio Digitador 500 Criadas
003 Ana Azevedo SQN 308 Brasília DF 24/06/70 Operador 700
004 Sônia Gomes QI 20 Guará DF 15/09/68 Carlos Analista 3.000
005 Ana Azevedo QI26 Brasília DF 15/09/68 Antônio Digitador 500

Professor Luis Octavio - 12


CPC - Parte III – Banco de Dados
Agora, será mostrada a mesma tabela de outra forma:
Tabela normalizada na
Tabela não-normalizada 1FN

-Número do Empregado # Indicador de -Número do Empregado #


-Primeiro Nome Chave Primária -Primeiro Nome
-Sobrenome -Sobrenome
-Endereço -Endereço
-Cidade -Cidade
-Estado -Estado
-Data de Nascimento -Data de Nascimento
-Dependentes -Dependentes
-Dependentes -Cargo
-Cargo -Salário

8.2 – Segunda Forma Normal (2FN)


Para realizarmos a 2FN a tabela terá que estar na IFN. Na 2FN eliminaremos os campos que não
possuírem dependência unívoca (apenas um para um) com a chave primária. Os campos que não possuírem
dependência unívoca formaram uma nova tabela

Veja abaixo:

Tabela normalizada na 1FN


Tabela 1
-Número do Empregado #
-Primeiro Nome
-Sobrenome
-Número do Empregado # 1
-Endereço
-Primeiro Nome 1
-Cidade
-Sobrenome 1
-Estado
-Endereço 1
-Data de Nascimento
-Cidade 1
-Cargo
-Estado 1
-Data de Nascimento 1
-Dependentes 2 Tabela 2
-Cargo 1 -Código do Dependente #
-Salário 1 -Número do Empregado #
-Dependentes

Número que mostra que o campo, possui ou


não possui dependência unívoca com a chave. Obs: O campo Código do Dependente,
O número 1 significa que possui dependência e foi criado, porque o campo
que permanecerá na mesma tabela. O número 2 Dependentes não é um bom campo para
mostra que o campo não possua dependência e chave primária e toda a tabela precisa
sairá. de uma Chave Primária.

8.3 – Terceira Forma Normal (3FN)


Para realizarmos a 3FN a tabela terá que estar na 2FN. Na 3FN os campos que possuírem dependência
com outros campos que não a chave primária. Os campos que possuírem dependência com outros campos,
formaram uma nova tabela.

Professor Luis Octavio - 13


CPC - Parte III – Banco de Dados
Veja abaixo:

-Número do Empregado # 1 Tabela 1


-Primeiro Nome 1 -Número do Empregado #
-Sobrenome 1 -Primeiro Nome
-Endereço 1 -Sobrenome
-Cidade 1 -Endereço
-Estado 1 -Cidade
-Data de Nascimento 1 -Estado
-Cargo 3 -Data de Nascimento
-Salário 3 -Código do Cargo #

Tabela 2
Tabelas normalizadas Tabelas -Código do Dependente #
na 2FN normalizadas -Número do Empregado #
na 3FN -Dependentes

Tabela 2
-Código do Dependente #
-Número do Empregado Tabela 3
-Dependentes -Código do Cargo #
-Cargo
-Salário

9. SQL (STRUCTURED QUERY LANGUAGE)


É a linguagem utilizada para a pesquisa, inserção, alteração e gerenciamento de Banco de dados. Essa
linguagem é composta pelas seguintes partes:

9.1. Conceitos Importantes


a) Sinônimos: é um alias (apelido) para uma tabela, visão ou unidade de programa. Muito utilizado quando
se deseja esconder a verdadeira localização da tabela ou mesmo para agilizar o acesso a um objeto
através do uso de nome mais simples.
b) Snapshots: é a cópia de uma parte ou de uma tabela inteira, podendo ser: Read_Only (não permite
alterações) ou Updatable (alterações na cópia e atualização da Máster Table periodicamente).
c) Roles (papel): é um método de distribuir privilégios para usuários, onde o personagem (role) é atribuído
ao usuário e este recebe assim todos os privilégios do personagem.
d)Visões: são tabelas virtuais cujo conteúdo foi definido por uma query ao bando de dados (não é uma
tabela física)
e) Stored Procedures: são programas armazenados no próprio servidor que podem ser acionadados por
um programa na máquina cliente.
f) Triggers: são stored procedures que são executadas quando alguma tabela é modificada, sendo uma
resposta a um evento e não por chamada feita pelo usuário.

9.2. Data Definition Language – DDL (Linguagem de Definição de Dados)


Fornece comandos para definição de esquemas de relação, remoção de relações, criação de índices e
modificações de esquemas de relação. Ela opera sobre a estrutura de dados da tabela. São comandos dessa
linguagem:
a) Create => permite criar uma estrutura.
Estrutura: CREATE TABLE(VIEW OU INDEX) <nome do objeto>
<nome da coluna> <tipo da coluna> [tamanho] <NOT NULL>,
<nome da coluna> <tipo da coluna> [tamanho],
<nome da coluna> <tipo da coluna> [tamanho],
PRIMARY KEY <nome da coluna>,
FOREIGN KEY <KEY NAME> <nome da coluna> <ON DELETE RESTRICT>
<CASCADE><SET NULL>;

Professor Luis Octavio - 14


CPC - Parte III – Banco de Dados

NOT NULL Exige o preenchimento


PRIMARY KEY Chave primária
FOREIGN KEY Chave estrangeira. Obriga que cada valor na
chave estrangeira deva possuir um valor
correspondente na chave primária da qual origina.
KEY NAME Nome dado à chave estrangeira para identifica-la.
ON DELETE RESTRICT A linha só pode ser excluída se nenhuma outra
linha depender dela.
CASCADE Exclui primeiro as linhas selecionadas, depois as
linhas dependentes
SET NULL Especifica que para cada exclusão executada na
chave primária, valores correspondentes da chave
estrangeira são configurados com NULL
Exemplo: create table aluno
Matr number (4),
Nome char (50),
Data-nasc date;

b) Alter => permite alterar a estrutura.


Estrutura: ALTER TABLE(VIEW OU INDEX) <nome do objeto>
DROP <nome da coluna> <tipo da coluna> [tamanho],
ADD <nome da coluna> <tipo da coluna> [tamanho] <NOT NULL>,
RENAME <nome da coluna> <novo nome>,
MODIFY <nome da coluna> <atributo a ser mofificado><NULL>
ADD Adiciona uma coluna em uma tabela
DROP Remove uma coluna de uma tabela. Não é
possível excluir uma coluna indexada ou
pertencente a uma chave.
MODIFY Altera os atributos de uma coluna. Não é possível
diminuir tamanho de uma coluna de caractere,
alterar tipo de dado ou alterar o tamanho de uma
coluna numérica.
NULL Remove o atributo NOT NULL de uma coluna.
RENAME Altera o nome de uma tabela ou coluna.

Exemplo: alter table aluno


Add end char (100);

c) Drop => apagar uma estrutura.


Estrutura: DROP TABLE(VIEW OU INDEX) <nome do objeto>
Exemplo: drop table aluno

9.3. Data Manipulation Language – DML (Linguagem de Manipulação de Dados)


Fornece comandos de consulta, inserção, remoção e modificação de dados em uma tabela. Ela opera
sobre os dados da tabela. São comandos dessa linguagem:
a) Insert => inserir registro
Estrutura: INSERT INTO <nome do objeto>,
(lista de colunas),
VALUES (valores das colunas);
INTO Indica o nome da tabela que receberá os dados
Lista de colunas Lista de colunas que receberão os dados. São
separadas por vírgula e colocadas entre
parêntese
VALUES Lista de valores que serão inseridos. São
separados por vírgula e colocadas entre
parêntese
Professor Luis Octavio - 15
CPC - Parte III – Banco de Dados
Exemplo: insert into aluno
(matr, nome, data-nasc)
values (1, “José da Silva”, “22/04/1998”);
b) Update => permite alterar um registro.
Estrutura: UPDATE <nome do objeto>,
SET coluna=valor,
WHERE condição;
SET Especifica a coluna que será atualizada
Where Especifica condições que devem ser satisfeitas
para limitar o número de linhas que será
atualizado
Exemplo: update aluno
Set data nasc = “22/04/1998”);
Where matr = 1;
c) Delete=> apagar um registro.
Estrutura: DELETE FROM <nome do objeto> WHERE condição,
FROM Especifica a trabela que terá os registros
apagados
Where Especifica condições que devem ser satisfeitas
para limitar o número de linhas que será apagado
Exemplo: delete from aluno
Where matr = 1;
9.4. Data Control Language – DCL (Linguagem de Controle de Dados)
Fornece comandos referentes a privilégios em um Banco de Dados.
a) Grant => atribuí direitos.
Exemplo: grant insert Privilégio
On aluno, Tabela
From professores; Grupo de usuários
b) Revoke=> permite retirar direitos.
Exemplo: revoke insert
On aluno,
From professor;

11. Banco de Dados Distribuído

É o tipo de Banco de Dados, onde ele será armazenado em diversos computadores. Nesses bancos os
computadores comunicam-se uns com os outros através de vários meios de comunicação.
Os processadores nesse sistemas são chamados de nós, sites ou computadores. Na verdade banco de
dados distribuído é uma coleção de nós, cada qual podendo participar na execução de transações que fazem
acesso a dados em um ou diversos nós. Os nós podem participar de transações globais (acesso a outros nós).

11.1. Vantagens de Distribuíção de Dados


1. a) Compartilhamento de Dados e Controle de Distribuição => facilidade de acessar dados de
outros nós.
2. b) Confibialidade e Disponibilidade => se um nó falha o sistema pode continuar a trabalhar.
c) Aceleração de Processamento de Consultas => como existe duplicação de dados, as consultas podem
ser colocadas em nós com menos carga.
11.2. Desvantagens de Distribuição de Dados
a) Custo de desenvolvimento de software => o sistema para ser implementado é mais caro.
b) Maior potencial de complexidade => como os nós estão funcionando em paralelo existe uma maior
dificuldade de controlá-los.
c) Aumento da sobrecarga de processamento => a troca de mensagens e a computação adicional
requerida para realizar a coordenação inter-nós são uma forma de sobrecarga.
5.11.3. Projeto de banco de Dados Distribuído
1. Duplicação => o sistema deve manter diversas réplicas idênticas da relação. Cada réplica é armazenada
em um nó diferente, resultando em duplicação de dados.
2. Fragmentação => a relação é dividida em diversos fragmentos. Cada fragmento é armazenado em um nó
diferente.
3. Duplicação e fragmentação => existe um réplica de cada uma das fragmentações.
Professor Luis Octavio - 16
CPC - Parte III – Banco de Dados
12. Banco de Dados Orientado a Objetos
É o tipo de Banco de dados que armazena dados e métodos que os processam.

Exemplos: Genstone, Itasca, Objectivity, Object Store, Ontos e Versant.

12.1. Características de Orientação a Objetos

1. Polimorfismo: Representa que um método para acessar um objeto pode assumir características
específicas, dependendo do tipo do objeto.
2. Herança: As características de uma classe estão disponíveis para suas subclasses.
3. Classe: Conjunto de Objetos do mesmo tipo, utilizados na implementação.
4. Encapsulamento: Ë um envoltório protetor que oculta os detalhes de implementação de um objeto.

12.2. Características do Banco de dados Orientado a objetos


1. A meta principal do BDOO é o encapsulamento.
2. Limitação da utilização dos dados pelos métodos específicos.
c) As solicitações fazem com que os objetos executem seus métodos. Alguns métodos podem ser
altamente complexos, como, pôr exemplo, aqueles que usam regras e uma máquina de inferência.
d) Quase inexistência de mudanças das classes projetadas para alta reusabilidade.
3. e) As classes podem ser reorganizadas sem afetar a maneira como são usadas.
f) As estruturas de dados podem ser complexas. Os usuários não tem consciência da complexidade pôr
causa do encapsulamento.
g) Os dados podem estar interligados de forma que os métodos da classe consigam bom desempenho. As
tabelas são uma das muitas estruturas que podem ser usadas. BLOSS (grandes objetos binários são
usados para som, imagens e vídeo.
h) Os dados e métodos não redundantes são conseguidos com encapsulamento e herança.
i)As solicitações provocam a execução de métodos. Métodos diversos podem ser usados.
j) Os dados para um objeto podem ser interligados e armazenados juntos de forma que possam ser
acessados a partir de uma posição do mecanismo de acesso.
k) Os modelos usados para análise, projeto, programação, e o acesso e a estrutura do banco são
semelhantes.

13. Administrador de Dados e Administrador de Banco de Dandos


ADMINISTRADOR ADMINISTRADOR
DE DADOS (AD) DE BANCO DE DADOS (DBA)
-Planejamento estratégico -Aspectos Operacionais do BD
-Gerência dos Dados da Empresa -Criação de Objetos no BD
-Integração de Sistemas -Atribuição e Revogação de Privilégios
-Suporte de Ferramentas CASE -Segurança
-Suporte ao Protetor de Sistemas *Auditoria
-Definição de Perfis *Recuperação para backup
-Suporte à Linguagem de BD
-Criação de Perfis
(Grupo de Usuário)
-Alocação do Banco
(Tables Spaces; Archives)

14. Integridade de Dados


Integridade de dados é o conjunto parametros préviamente estabelecidos, aos quais os dados a serem
atualizados no BD são submetidos, para garantir que de um processo de atualização não resultem dados
inconsistentes.
Uma das Características mais fortes dos SGBD Relacionais, esta na possibilidade de implementação de
regras de integridade diretamente no banco de dados.
Nesse ponto, a grande vantagem em relação aos demais modelos de BD (rede e hierárquico), consiste no
gerenciamento automático e centralizado de rotinas de integridade pelo SGBD, do que decorrem fatores como
eliminação de códigos redundantes e maior segurança, no que se refere à consistência das informações.
Pôr outro lado, a possibilidade de definir a integridade no BD, não descarta a hipótese de mante-la no fonte
de aplicativos, haja visto que, em alguns casos, especialmente na arquitetura Cliente/Servidor, essa alternativa
pode trazer significativos ganhos perfomance.

Professor Luis Octavio - 17


CPC - Parte III – Banco de Dados
14.1. Formas de Implementação de Integridade
Existem basicamente duas opções para implementação de integridade nos SGBD-R: a forma DECLARATIVA ou
PROCEDURAL.

a) Integridade Declarativa
É implementada no BD, através da parametrização do comando CREATE (SQL/ANSI). Os parametros de
integridade desse comando possuem nomes e funções, que variam conforme o SGBD utilizado.
Exemplo:
CREATE TABLE funcionário
(matricula number (5) PRIMARY KEY
nome char (30) NOT FULL);

Nos dois exemplos mostrados, nenhuma linha de código será necessária nos aplicativos que atualizam o BD para
garantir a integridade. O próprio SGBD se encarrega de efetuar a consistência dos dados.

b) Integridade Procedural
Apresenta-se sob a forma de um pequeno programa, cuja a lógica é escrita pelo programador conforme o objetivo
desejado. Esse programa geralmente é escrito na linguagem nativa do SGBS e associado a uma tabela, campo ou
conjunto de campos da mesma. Também conhecido como gatilho, é ajustado para disparar, automáticamente,
sempre que o SGBD dectar a ocorrência de um ou mais evento de atualização e/ou consulta sobre a tabela.
Exemplo:
CREATE TRIGGER atualiza - saldo
AFTER INSERT ON TABLE lançamentos
BEGIN
UP DATE tab-saldo
SET saldo-atual = saldo atual_atual + valor_lançamento;
END;
No exemplo anterior, a integridade procedural foi criada para manter atualizada a tabela de saldos, de modo que,
sempre que um registro for incluído na tabela “lançamentos”, o saldo seja automáticamente atualizado na tabela
“tab-saldo”.

14.2. Tipos de Integridade


Os principais tipos de integridade para os SGBD-R, consagrados pela literatura são as integridades de: CHAVE
PRIMÁRIA, ENTIDADE, COLUNA ou DOMÍNIO, REFERENCIAL e INTEGRIDADE DEFINIDA PELO USUÁRIO.
Essas regras, são implementáveis, de maneira procedural ou declarativa, conforme o SGBS.

A) Integridade de Chave Primária


A chave primária não pode conter valores em duplicata.
A grande maioria dos SGBS-R implementa essa, regra, de forma declarativa, através da coloção do parametro
PRIMARY KEY no script de criação de tabela.
Exemplo de criação de tabela:
CREATE TABLE funcionário
(matrícula number(5) PRIMARY KEY
nome char (30);

Dessa maneira o SGBD se encarregará de manter, automáticamente, a condição de unicidade da chave primária,
sem a necessidade de colocar nenhum código acessório no aplicativo o BD.

B) Integridade de Identidade:
A chave principal não pode conter valor nulo. Mesmo que a chave primária seja composta de dois ou mais
atributos, todos os seus componentes devem ser de preenchimento obrigatório, pois o NULO na chave, ou em
parte dela, pode ocasionar DUPLICATAS ou seja, duas linhas na tabela com o mesmo valor de chave, o que seria
recusado pelo BD, em conformidade com a regra descrita no item “a”.

A maioria dos SGBD-R, implementam essa regra e a do item “a” com um único parametro: “PRIMARY KEY”.

C) Integridade de Coluna ou Domínio:


Esse tipo de regra é utilizado para restringir o universo de valores válidos para uma coluna. Pôr exemplo, em uma
coluna os valores poderiam ser limitados a um certo conjunto ou faixa predefinida.

Professor Luis Octavio - 18


CPC - Parte III – Banco de Dados
O padrão ANSI SQL-92 prevê a utilização de um recurso conhecido como VERIFICAÇÃO DE REGÊNCIAS¹, para
implementação de integridades de coluna.

Exemplo'':

CREATE TABLE conta_ corrente


(número_conta number (10)
tipo_conta number (01) CHECK tipo in 0, 1, 2
valor_ch_especial
char )01)
CHECK valor_ch_especial > 100,00
And
Valor_ch_especial < 1.000,00;

O primeiro parametro CHECK restringe o conjunto de valores válidos para o atributo tipo_conta, a 0, 1 OU 2. O
segundo CHECK estabelece uma faixa de valores válidos entre 100,00 e 1.ooo,oo, para campo
“valor_ch_especial”. Em ambos os casos, se um programa de atualização tentar violar essas integridades, o BD
invalidará automáticamente a operação e uma mensagem de erro aparecerá na tela.

D) Integridade Referencial:
Essa integridade é criada quando se deseja que o SGBD, m,antenha automáticamente, o sincronismo entre duas
tabelas, que possuam uma relação de depend6encia, do tipo pai-filho, Para garantir que não resultem registros
filhos sem correspondente linha de referência na tabela pai (registros orfàos), em decorrência do processo de
atualização do DB.
Cabe observar, que nos casos de autorelacionamento, essa relação de dependência pode ocorrer entre linhas de
uma mesma tabela, situação que nem todos os SGBD suportam.
OS SGBD que seguem o padrão ANSI SQL-92, suportam a integridade referencial de forma declarativa. Alguns
produtos possuem ainda opções de propagação e ações referenciais. Essas opções propiciam, poe exemplo, que
a exclusão de um registro pai, provoque a exclusão automática de seus respectivos filhos, ou que a alteração no
valor de uma chave primária reflita-se automáticamente para os registros que referenciam.

Exemplo:

CREATE TABLE funcionário


(matrícula number (5) PRIMARY KEI
nome char (30));

CREATE TABLE dependente


(id_dependente number (5) PRIMARY KEY
matricula number (5) REFERENCES funcionário.matricula
ON DELETE
CASCADE
Nome_dependente char(30));

O exemplo mostra a integridade referencial, implementada na tabela “dependente”, indicando que o campo
“matricula”, nessa tabela refere-se ao campo de mesmo nome (poderia Ter nome diferente) na tabela “funcionário”.
A clausula “ON DELETE CASCADE” indica que sempre que um usuário excluir um registro da tabela “funcionário”,
o BD deve excluir automáticamente (efeito cascata) os registros da tabela “dependente” a ele relacionados.
No exemplo, a integridade referencial garante ainda que a inclusão de um DEPENDENTE, somente será valida,
caso exista o FUNCIONÁRIO correspondente.

14.3. Propriedades Relacionais


As propriedades relacionais são considerações óbvias, porém elucidativas a respeito do funcionamento e da
filosofia que norteia o desenvolvimento dos SGBD-R. Essas propriedades derivam da teoria de conjuntos e
algumas se sobrepõem ou confirmam as regras de integridade.
A . Uma tabela não deve possuir duas linha iguais. Isto se explica pelo fato de que as linha são componentes
de um “conjunto” (a tabela) e conjuntos, por definição, não possuem dois elementos iguais. Assim sendo, pelo
menos um atributo componente da linha deve possuir um valor que a diferencie das demais. Nos modelos
relacionais o diferencial mínimo entre duas linha de uma tabela é a chave primária.

Professor Luis Octavio - 19


CPC - Parte III – Banco de Dados
B . Toda tabela de um BD relacional deve possuir chave primária. Essa propriedade decorre da anterior.
Atualmente, todos os SGBD Relacionais, disponíveis no mercado, mantém automáticamente a unicidade da chave
primária (integridade de chave). Por outro lado, alguns desses produtos, permitem a criação de tabelas sem chave
primária (ORACLE, por exemplo), deixando a critério do analista a sua declaração ou não, o que contraria essa
propriedade, mas atribui maior grau de flexibilidade ao produto.
C . Cada tabela deve possuir um nome próprio, distinto das demais tabelas do mesmo banco de dados.
Essa propriedade também deriva da teoria de conjuntos, já que as tabelas são os componentes do conjunto BD.
Cabe reforçar, que em bancos de dados distintos duas tabelas podem ter o mesmo nome.
D . Cada atributo (coluna) de uma mesma tabela deve possuir um nome diferente. Por outro lado, o mesmo
atributo pode aparecer em outra tabela com o mesmo nome ou com nome diferente (sinônimo).
E . Os SGBD-R somente operam com estruturas de dados de formato tabular, normalizadas pelo menos em
1FN (1ª forma normal), onde a principal característica é a atomicidade, ou seja, ocorrência de apenas um valor de
atributo nas interseções linha X coluna de tabela. Esse nível de normalização é exigido para tornar possível a
aplicação da álgebra relacional (junção, projeção, união, etc..) para recuperar informações contidas nas tabelas.
Níveis mais altos de normalização (2 e 4FN), são úteis para diminuir a redundância, melhorar a consistência e
integridade dos dados.
F . A ordem das linhas e colunas na tabela é irrelevante, pois pode ser facilmente modificada nas consultas,
através dos recursos da linguagem SQL (Structured Query Language).
G . Os SGBD-R devem ser capazes de tratar, de maneira diferenciada o valor NULO (NULL). O NULL indica
ausência de valor para um atributo em determinada linha. Nulo corresponde na teoria de conjuntos a conjunto
vazio e é diferente de zero ou branco.

15. Álgebra Relacional


A Álgebra Relacional é uma teoria matemática baseada nas relações entre conjuntos. Da sua aplicação ao Modelo
Relacional de Banco de Dados, resultou a possibilidade de armazenar estruturas de dados complexas (como uma
ficha cadastro de clientes), de maneira fragmentada, no formato tabular dos SGBR-R e recompor a informação
original, a partir da formulação de relações entre as tabelas do banco de dados. Essas relações são providas pelos
operadores da álgebra relacional, que se encontram disponíveis nos recursos da linguagem SQL (Structured Query
Language).

Os operadores da álgebra relacional classificam-se em dois grupos:


_OPERADORES TRADICIONAIS DE CONJUNTO
.UNIÃO
.INTERSEÇÃO
.DIFERENÇA
.PRODUTO CARTESIANO
_OPERADORES RELACIONAIS
.PROJEÇÃO
.SELEÇÃO
.JUNÇÃO

Para classificar-se um SGBD como Relacional, é fundamental que ele possua, entre outras características,
no mínimo os três operadores relacionais, haja vista que, nem todos os SGBD-R possuem os sete operadores. Os
Operadores Tradicionais são mais encontrados em SGBD mais robustos, como ORACLE, SYBASE E DB/2.
15.1. Estudo de Caso
O gráfico abaixo corresponde ao Modelo de Entidades e Relacionamentos (MER) de um banco de dados, que
será utilizado como referência para o estudo dos operadores relacionais.

CLIENTE

CONTA
Segue uma amostragem das tabelas do banco de dados representado no MER:

Professor Luis Octavio - 20


CPC - Parte III – Banco de Dados
CLIENTE
ID-CLI NOME ENDEREÇO TIPO C= COMUM
001 RITA SQN V
E= ESPECIAL
002 MARCELO GUARÁ C
003 CARLA GAMA E V=VIP
004 VÍTOR SQS C
005 RAQUEL SQS E
006 BRUNA GUARÁ V
007 SÔNIA CRUZEIRO C
008 GETÚLIO SQN C

CONTA_CORRENTE
NUM-
AGENCIA CONTA ID-CLI SIT SALDO
106 001 004 0 20.000,00
106 002 003 2 250,00
106 040 003 0 500,00
167 001 005 0 50,00
167 005 007 0 10,00
167 006 008 2 20,00
202 001 001 0 150,00
202 002 003 1 0
202 003 002 0 30,00
202 004 004 2 50.000,00
0 = ATIVA
1 = INATIVA
2 = BLOQUEADA
15.2. Generalidades
A . Nos SGBD que utilizam o SQL padrão ANSI (Americam National Standard Institute), os operadores da
Álgebra Relacional são implementados pôr variações de parâmentros na sintaxe do comando SELECT, que é
um comando de leitura da base de dados.
B . A sintaxe utilizada para os comandos SELECT, que aparecerão nos exemplos, foi extraída dos manuais
do SGBD ORACLE, que segue o padrão SQL ANSI. A estrutura básica do comando SELECT é:
SELECT colunas ......ou * ( que significa todas as colunas)
FROM tabelas.....
WHERE condição.......
C. As operações da álgebra relacional geram sempre uma tabela resultado residente em memória principal
(tabela virtual), que em analogia com a teoria de conjuntos, pode ser vazia, unitária ou conter “N” linhas.
D. As operações podem ser efetuadas entre duas tabelas virtuais através da combinação de dois comandos
SELECT em uma única sentença.
E. É comum a combinação de diversos operadores da Álgebra Relacional em um único comando “SELECT”. A
análise individual de cada um deles é um exercício meramente didático.
F. As situações criadas, são apenas ensaios, que não esgotam as possibilidades de utilização dos
operadores. Além disso, uma mesma necessidade pode ter mais de uma solução. Portanto a utilidade dos
operadores depende do problema tratado e da criatividade do técnico.

15.3. Operadores de Conjunto


1. União
A união de duas tabelas “A” e “B”, resulta numa tabela virtual “C”, contendo o total de linhas das
tabelas envolvidas na operação.
No sistema exemplo, imagine que cada agência mantenha os dados cadastrais de CLIENTE em servidores
locais de sua rede, e que esses servidores estão ligados em um servidor corporativo. Para se obter do
servidor corporativo uma visão única, que contenha os dados de todos os clientes do Banco, pode-se utilizar
o operador UNION da seguinte maneira:
SELECT * FROM cliente@agencia1;
UNION
SELECT * FROM cliente@agencia2;
.UNION
SELECT* FROM cliente@agenciaN;
Professor Luis Octavio - 21
CPC - Parte III – Banco de Dados
O resultado seria idêntico ao que temos na amostragem da tabela CLIENTE do sistema exemplo:
ID-CLI NOME ENDEREÇO TIPO
001 RITA SQN V
002 MARCELO GUARÁ C
003 CARLA GAMA E
004 VÍTOR SQS C
005 RAQUEL SQS E
006 BRUNA GUARÁ V
007 SÔNIA CRUZEIRO C
008 GETÚLIO SQN C
Obs: Os SELECTs devem referenciar os mesmos atributos e na mesma seqüência.

2. Interseção
A interseção entre duas tabelas “A” e “B”, resulta numa tabela virtual “C”, contendo linhas comuns
às duas tabelas envolvidas na operação.
No sistema exemplo, considere a necessidade de se listar o “ID-CLI” de clientes que possuam,
simultaneamente, CONTAS_CORRENTES ativas e bloqueadas. Para atender a esse requerimento, pode-
se utilizar o operador INTERSECT da seguinte maneira:
SELECT id_cli
FROM conta_corrente
WHERE sit=0
INTERSECT
SELECT id_cli
FROM conta_corrente
WHERE sit=2;
Considerando a amostragem da tabela CONTA_CORRENTE do sistema exemplo, o resultado do SQL
anterior seria:
ID-CLI
004
003
Obs: Os SELECTs devem referenciar os mesmo atributos e na mesma seqüência.

3. Diferença
A Diferença entre duas tabelas “A” e “B” (na ordem A – B), resulta numa tabela virtual “C”, contendo
as linhas pertencentes exclusivamente à tabela “A” e não a “B”.
No sistema exemplo, considere a necessidade de se listar o “ID-CLI” de clientes que não possuem contas-
correntes INATIVAS ou BLOQUEADAS, somente ATIVAS. Para atender a esse requerimento, pode-se utilizar
o operador MINUS da seguinte maneira:
SELECT id_cli
FROM conta_corrente
WHERE sit=0
MINUS
SELECT id_cli
FROM conta_corrente
WHERE sit=2 OR SIT=1;
Considerando a amostragem da tabela CONTA_CORRENTE do sistema exemplo, o resultado do SQL
anterior seria:
ID-CLI
005
007
001
002
Obs: Os SELECTs devem referenciar os mesmo atributos e na mesma seqüência.

4. Produto Cartesiano
O Produto Cartesiano entre duas tabelas “A” x “B”, resulta numa tabela virtual “C”, contendo todas as
linhas da tabela “A” combinadas com todas as linhas da tabela “B”, através da concentração de suas
linhas.

Professor Luis Octavio - 22


CPC - Parte III – Banco de Dados
Essa operação tem uma certa semelhança com a JUNÇÃO, pois combina dados de mais de uma tabela,
exceto que não estabelece nenhum critério (join condition) para isso.
Geralmente o Produto é utilizado para construção de massas de teste ou quando o técnico esquece de
colocar o “join condition” em um SELECT que envolva duas ou mais tabelas. Nesse caso, pode resultar numa
tabela enorme. Por exemplo, o produto entre uma tabela “A” com 50 linhas e uma tabela “B” com 100 linhas
resulta numa tabela “C” com 5.000 linhas.
O SELECT a seguir efetua um produto entre as tabelas CLIENTE e CONTA_CORRENTE:
SELECT nome, saldo
FROM cliente, conta_corrente
Considerando as amostragens das tabelas do sistema exemplo referenciadas no comando anterior, a
tabela resultado teria 80 linhas, com o seguinte aspecto:
NOME SALDO
RITA 20.000,00
RITA 250,00
RITA 500,00
. .
. .
MARCELO 20.000,00
. .
MARCELO 50.000,00
. .
. .
SÔNIA 30,00
. .
. .
. .
GETÚLIO 50.000,00
e) Projeção
A Projeção consiste em obter um subconjunto de colunas de uma ou mais tabelas_base, como
resultado de uma consulta parcial aos dados disponíveis no banco de dados.
Geralmente é utilizada em conjunto com as demais operações para produzir resultados de consultas, ou
ainda, para criar visões (VIEWs), que restringem o acesso do usuário a determinados atributos de base de
dados.
No sistema exemplo, uma consulta contendo nome e endereço dos clientes, corresponde a uma PROJEÇÃO
elaborada a partir da tabela_base CLIENTE, através da seguinte sentença SQL:

SELECT nome, endereço


FROM cliente ;
Considerando a amostragem da tabela CLIENTE do sistema exemplo, o resultado do SQL anterior seria:

NOME ENDEREÇO
RITA SQN
MARCELO GUARÁ
CARLA GAMA
VÍTOR SQS
RAQUEL SQS
BRUNA GUARÁ
SÔNIA CRUZEIRO
GETÚLIO SQN

f) Seleção
Também conhecida como Restrição, essa operação tem pôr finalidade selecionar um subconjunto de
linhas de uma ou mais tabelas_base, de acordo com critérios (where criteria) que envolvem atributos e
valores para filtrar os dados desejados, gerando uma consulta parcial aos dados disponíveis no banco
de dados.
Geralmente é utilizada em conjunto com as demais operações para produzir resultados de consultas, ou
ainda, para criar visões (VIEWS), que restringem o acesso do usuário a determinadas linhas de tabelas na
base de dados.

Professor Luis Octavio - 23


CPC - Parte III – Banco de Dados
Os Critérios de Seleção são traduzidos na sintaxe do comando SELECT, pela combinação de operadores
lógicos (AND, OR, NOT), aritméticos (=, <>, >,<,>= e <=) e operadores SQL (BETWENNM, LIKE, IN, NULL),
representados na cláusula WHERE.
No sistema exemplo, uma consulta contendo somente os clientes VIP, corresponde a uma SELEÇÃO
elaborada a partir da tabela-base CLIENTE, através da seguinte sentença SQL.

SELECT *
FROM cliente
WHERE tipo = ‘V’;
Considerando a amostragem da tabela CLIENTE do sistema exemplo, o resultado do SQL anterior seria:

ID-CLI NOME ENDEREÇO TIPO


001 RITA SQN V
006 BRUNA GUARÁ V

g) Junção
Essa operação relacional é utilizada para compor informações complexas a partir de tabelas
relacionadas. A junção de duas tabelas “A” e “B” concatena as linhas das tabelas envolvidas,
resultando numa tabela virtual “C”.

Para efetuar a JUNÇÃO de duas tabelas é essencial que elas estejam logicamente relacionadas, conforme
prêve o modelo relacional, ou seja, o grau do relacionamento deve ser no máximo “1 : N”, sendo que a chave
primária da entidade “1” deve figurar como chave estrangeira da entidade “N”. Além disso, os valores
dessas chaves devem ser coincidentes, para as linhas que se deseja concatenar.
A junção é notada na sintaxe do SQL, pela comparação de atributos chave primária / chave estrangeira,
através da cláusula WHERE do comando SELECT, o que denominamos condição de junção (join condition).
Quando o técnico esquece de colocar o “join condition” em um SELECT que envolva duas ou mais tabelas o
SGBD geralmente efetua o PRODUTO.
O SELECT a seguir efetua uma junção entre as tabelas CLIENTE e CONTA _CORRENTE:
SELECT nome, saldo
FROM cliente, conta_corrente
WHERE cliente.id-cli = conta_corrente.id-cli;
Considerando as amostragens das tabelas do sistema exemplo, referenciadas no comando anterior, a
tabela resultado seria:
NOME ENDEREÇO
RITA 150,00
MARCELO 30,00
CARLA 500,00
CARLA 0,00
VÍTOR 20.000,00
VÍTOR 50.000,00
RAQUEL 50,00
SÔNIA 10,00
GETÚLIO 20,00

Note que a cliente de nome BRUNA não configura na tabela resultado porque não possui registro na tabela
CONTA_CORRENTE.

Professor Luis Octavio - 24

Você também pode gostar