Академический Документы
Профессиональный Документы
Культура Документы
CONTEÚDO PROGRAMÁTICO
ÍNDICE
Noções de Sistemas Operacionais���������������������������������������������������������������������������������������������������������������������2
Definição�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������2
Kernel����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2
Linguagem de Controle (Interpretador de Comandos)������������������������������������������������������������������������������������������������3
É Possível Instalar Mais de um Sistema Operacional no Mesmo Computador?�������������������������������������������������������3
Dual Boot����������������������������������������������������������������������������������������������������������������������������������������������������������������������������3
Máquina Virtual����������������������������������������������������������������������������������������������������������������������������������������������������������������3
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
1
AlfaCon Concursos Públicos
Kernel
O kernel é o núcleo de um sistema operacional. Ele é responsável por controlar os dispositivos
de hardware do computador, ou seja, é no Kernel onde estão os drivers dos dispositivos de entrada e
saída, por exemplo.
Os drivers são camadas de software responsáveis pela implementação de rotinas específicas que
permitem o acesso, a inicialização e o gerenciamento de um determinado dispositivo. Outro fator a ser
considerado com relação aos drivers é o alto grau de dependência do sistema operacional e o restante do
kernel do sistema em que será instalado. A implementação dos drivers, leva em consideração o sistema
operacional, para que as corretas instruções de acesso ao dispositivo estejam presentes no driver. O alto
grau de dependência entre os driver e o restante do kernel do sistema fazia com que em sistemas mais
antigos, ao ser instalado um novo driver, o kernel tinha que ser recompilado e em seguida, reinicializa-
do o sistema. Com a modernização dos sistemas operacionais, não há mais a necessidade de reiniciali-
zar o sistema após uma instalação, pois os drivers são carregados dinamicamente.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
2
AlfaCon Concursos Públicos
Dual Boot
Dual Boot é o nome dado ao processo que permite que mais de um sistema operacional seja
instalado no mesmo HD, por exemplo. Nesse caso, o HD precisa passar por um processo chamado
de particionamento de disco, ou seja, o HD será dividido em partes lógicas independentes. Sendo
assim, é possível instalar em cada partição um sistema operacional diferente. A grande vantagem
do processo Dual Boot é o fato de o computador não perder desempenho, mesmo tendo mais de um
sistema operacional instalado. Isso acontece porque apenas um sistema será carregado por vez. O
funcionamento desse processo depende da utilização de um gerenciador de boot.
Gerenciador de boot é um software capaz de iniciar o processo de carregamento do sistema ope-
racional em um computador. Assim, ao ligar o computador, o gerenciador de boot será carregado e o
usuário poderá escolher qual sistema operacional deseja inicializar naquele momento. Entre os geren-
ciadores de boot mais conhecidos e cobrados em prova, podemos citar o Grub e o Lilo, por exemplo.
Máquina Virtual
Uma máquina virtual é um arquivo de computador (normalmente chamado de imagem) que
se comporta como um computador de verdade. Em outras palavras, é a criação de um computador
dentro de um computador. Ela é executada em uma janela, assim como outros programas, propor-
cionando ao usuário final a mesma experiência na máquina virtual que ele teria no sistema opera-
cional host. Isso gera um ambiente ideal para teste de outros sistemas operacionais, incluindo lança-
mentos beta e para acessar dados infectados por vírus, por exemplo.
Diversas máquinas virtuais podem ser executadas simultaneamente no mesmo computador
físico, o que pode afetar o desempenho da máquina.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
3
AlfaCon Concursos Públicos
CONTEÚDO PROGRAMÁTICO
ÍNDICE
Sistema Operacional Windows 10���������������������������������������������������������������������������������������������������������������������2
Menu Iniciar�����������������������������������������������������������������������������������������������������������������������������������������������������������������������2
Barra de Tarefas�����������������������������������������������������������������������������������������������������������������������������������������������������������������2
Alterar as Configurações da Barra de Tarefas���������������������������������������������������������������������������������������������������������������2
Área de Notificação�����������������������������������������������������������������������������������������������������������������������������������������������������������3
Central de Ações����������������������������������������������������������������������������������������������������������������������������������������������������������������3
Alterar as Configurações de Notificação de Remetentes Individuais������������������������������������������������������������������������4
Modo Tablet������������������������������������������������������������������������������������������������������������������������������������������������������������������������4
Windows Hello�������������������������������������������������������������������������������������������������������������������������������������������������������������������5
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
1
AlfaCon Concursos Públicos
Além dos novos detalhes gráficos, visualmente falando, o retorno do Menu Iniciar é uma grande
novidade do Windows 10. O espaço se apresenta agora como uma mistura bem interessante do Menu
Iniciar clássico, presente até o Windows 7, e da tela Iniciar, disponível nas versões 8 e 8.1 do sistema
operacional. Porém, o Windows 10 permite que você use tanto o Menu Iniciar quanto a tela Iniciar, a
mesma utilizada no Windows 8.
Para isso, abra o Menu Iniciar e clique em “Configurações”. Na janela que abriu em seu compu-
tador, clique em “Personalização” e depois vá até a seção “Iniciar”. Lá, ative a opção “Usar tela inteira
de Iniciar” conforme mostra a figura a seguir. Depois, é só clicar sobre o ícone do Windows no canto
da tela ou então usar a tecla do Windows presente em seu teclado para abrir a tela Iniciar. Obviamen-
te, é possível restaurar esta função para o modo padrão do Windows 10 a qualquer momento.
Barra de Tarefas
Use a barra de tarefas para mais do que ver os apps e saber a hora. Você pode personalizá-la de
várias maneiras — altere a cor e o tamanho, fixe seus apps favoritos nela, mova-a na tela e reorganize
ou redimensione os botões da barra de tarefas. Você também pode bloquear a barra de tarefas para
manter suas opções, verificar o status da bateria e minimizar todos os programas abertos momenta-
neamente para poder dar uma olhada em sua área de trabalho.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
2
AlfaCon Concursos Públicos
Área de Notificação
A tradicional área de notificação do Windows também ganhou novidades no Windows 10.
Agora, você pode personalizá-la de forma avançada, selecionando quais ícones devem ser exibidos
ali e também permite gerenciar individualmente os ícones de notificações de cada aplicativo. Para
isso, clique com o botão direito do mouse em qualquer ponto da Barra de Tarefas e vá em “Configu-
rações da barra de tarefas”. Na tela de personalização, você conta com várias opções, então leia com
atenção cada uma delas e ative ou desative alguns recursos conforme julgar necessário.
Central de Ações
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
3
AlfaCon Concursos Públicos
A central de ações no Windows 10 é onde você encontrará suas notificações e ações rápidas.
Altere suas configurações a qualquer momento para ajustar como e quando você vê notificações,
além de quais aplicativos e configurações são as suas principais ações rápidas.
Para isso, acesse:
Modo Tablet
O modo tablet deixa o Windows mais fácil e intuitivo de usar com touch em dispositivos tipo
conversíveis, ou quando você não quer usar teclado e mouse. Para ativar o modo tablet, selecione
central de ações na barra de tarefas e depois Modo tablet.
O menu Iniciar e os aplicativos (incluindo programas mais antigos) são abertos em tela inteira,
o que oferece a você mais espaço para trabalhar. Para usar dois aplicativos lado a lado, arraste um
aplicativo para um lado. Você verá onde ele será ajustado, juntamente com qualquer aplicativo que
estiver aberto que possa se ajustar do lado dele.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
4
AlfaCon Concursos Públicos
Windows Hello
A ativação do Windows Hello permite fazer logon com seu rosto ou impressão digital. Entre de
modo mais rápido e mais seguro em seu laptop, por exemplo.
Para isso, acesse:
Iniciar > Configurações > Contas > Opções de entrada.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
5
AlfaCon Concursos Públicos
CONTEÚDO PROGRAMÁTICO
ÍNDICE
Sistema Operacional Windows 10���������������������������������������������������������������������������������������������������������������������2
Visão de Tarefas�����������������������������������������������������������������������������������������������������������������������������������������������������������������2
Histórico de Atividades do Windows 10��������������������������������������������������������������������������������������������������������������������2
Desativando o Histórico de Atividades����������������������������������������������������������������������������������������������������������������������3
Multitarefas��������������������������������������������������������������������������������������������������������������������������������������������������������������������4
Desligar, Suspender ou Hibernar o Computador�����������������������������������������������������������������������������������������������������4
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
1
AlfaCon Concursos Públicos
No Windows 10, foi incluído um recurso chamado Visão de Tarefas, uma espécie de visualização
panorâmica do sistema na qual é possível pré-visualizar todas as janelas abertas naquele momento.
Para acessar esse recurso, além do botão disponível na barra de tarefas, o usuário poderá utilizar a
combinação de teclas: logotipo do Windows + Tab.
Acessando o recurso Visão de Tarefas, é possível adicionar novas áreas de trabalho virtuais ao
sistema. Ou seja, é possível ter diversas áreas de trabalho funcionando simultaneamente dentro do
Windows 10. Ter várias áreas de trabalho é ótimo para manter organizados os projetos em anda-
mento e não relacionados, por exemplo.
Se preferir, o usuário poderá criar novas áreas de trabalho por meio do teclado, utilizando a com-
binação de teclas: logotigo do Windows + Ctrl + D.
Além disso, é possível alternar entre as diversas áreas de trabalho virtuais, utilizando a combina-
ção de teclas: logotipo do Windows + Ctrl + Setas direcionais (esquerda ou direita).
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
2
AlfaCon Concursos Públicos
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
3
AlfaCon Concursos Públicos
Multitarefas
Com o recurso Multitarefa é possível organizar a forma como várias janelas podem ser exibidas
ao mesmo tempo na tela. Por exemplo, arraste janelas para os lados ou cantos da tela, e elas serão di-
mensionadas automaticamente para se ajustarem perfeitamente, lado a lado. Esse recurso pode ser
configurado a partir do caminho: Iniciar Configurações Sistema Multitarefas
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
4
AlfaCon Concursos Públicos
CONTEÚDO PROGRAMÁTICO
ÍNDICE
Sistema Operacional Windows 10���������������������������������������������������������������������������������������������������������������������2
Cortana�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2
Ativar o Modo “Ei Cortana”����������������������������������������������������������������������������������������������������������������������������������������2
Atalho de Teclado����������������������������������������������������������������������������������������������������������������������������������������������������������2
Permissões���������������������������������������������������������������������������������������������������������������������������������������������������������������������3
Para Configurar As Permissões, Abra A Cortana E Selecione Configurações. Depois, Em Permissões.��������3
Segurança do Windows (Windows Defender)��������������������������������������������������������������������������������������������������������������3
Explorador de Arquivos����������������������������������������������������������������������������������������������������������������������������������������������������3
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
1
AlfaCon Concursos Públicos
Atalho de Teclado
É possível habilitar a tecla de atalho Windows + C para permitir que a Cortana escute comandos. Para
isso, abra a Cortana e selecione Configurações. Depois, em Atalho de teclado, mude a opção para Ativado.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
2
AlfaCon Concursos Públicos
Permissões
Para Configurar As Permissões, Abra A Cortana E Selecione Configurações. Depois, Em Permissões.
Explorador de Arquivos
O Explorador de Arquivos é um gerenciador de arquivos e pastas que, como a própria defini-
ção explica, tem como principal função exibir os arquivos e pastas existentes no computador.
É possível acessar o explorador de arquivos de várias maneiras, como, por exemplo, por meio da
barra de tarefas ou por meio do menu Iniciar ou ainda por meio da combinação de teclas Windows + E.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
3
AlfaCon Concursos Públicos
→ Se você quiser que uma pasta apareça no Acesso rápido, clique nela com o botão direito do mouse
e selecione Fixar no Acesso rápido. Desafixe-a de lá quando não precisar mais dela.
→ Para desativar arquivos recentes ou pastas frequentes, vá para a guia Exibir e selecione Opções.
Na seção Privacidade, desmarque as caixas de seleção e selecione Aplicar. Agora o Acesso rápido
só mostrará suas pastas fixas.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
4
AlfaCon Concursos Públicos
→ Meu computador agora é chamado Este Computador, e ele não aparecerá na área de trabalho por padrão.
→ O OneDrive agora faz parte do Explorador de Arquivos (O OneDrive é o armazenamento on-line
gratuito que vem com sua conta Microsoft. Salve seus arquivos em pastas do OneDrive e você
poderá acessá-los de seu computador, tablet ou telefone).
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
5
AlfaCon Concursos Públicos
CONTEÚDO PROGRAMÁTICO
ÍNDICE
Sistema Operacional Windows 10���������������������������������������������������������������������������������������������������������������������2
Explorador de Arquivos����������������������������������������������������������������������������������������������������������������������������������������������������2
Nomes de Arquivos�������������������������������������������������������������������������������������������������������������������������������������������������������2
Restrições ao Atribuir Nomes�������������������������������������������������������������������������������������������������������������������������������������2
Lixeira����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3
Propriedades da Lixeira�����������������������������������������������������������������������������������������������������������������������������������������������3
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
1
AlfaCon Concursos Públicos
Ao usar o método Arrastar e Soltar, note que algumas vezes o arquivo ou a pasta é copiado
e, outras vezes, ele é movido. Se você estiver arrastando um item entre duas pastas que estão no
mesmo disco rígido, os itens serão movidos para que duas cópias do mesmo arquivo ou pasta não
sejam criadas no mesmo local. Se você estiver arrastando o item para uma pasta que esteja em outra
unidade, o item será copiado.
Nomes de Arquivos
Os nomes de arquivos do Windows são divididos em duas partes por um ponto: a primeira é o nome
do arquivo, e a segunda é uma extensão de três ou quatro caracteres que define o tipo de arquivo. Em
Informática.docx, por exemplo, a primeira parte do nome do arquivo é Informática e a extensão é docx.
As extensões dizem ao computador qual aplicativo criou ou pode abrir o arquivo e qual ícone
deve ser usado para o arquivo. Por exemplo, a extensão .docx instrui o computador de que o Micro-
soft Word pode abrir o arquivo e que um ícone do Word deve ser exibido quando você visualizá-lo
no Explorador de Arquivos.
Restrições ao Atribuir Nomes
1º – Os nomes não podem conter alguns caracteres especiais, são eles: / (barra) , \ (barra invertida), :
(dois pontos), * (asterisco), ? (interrogação), | (barra vertical), “ (aspas duplas),
< (menor que), > (maior que).
2º – O nome do arquivo incluindo o seu caminho, ou seja, o local em que está armazenado, não pode
ultrapassar 260 caracteres.
3º – Arquivos que estão abertos não podem ser renomeados.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
2
AlfaCon Concursos Públicos
Lixeira
Quando você exclui um arquivo do disco rígido do seu computador, ele apenas é movido para a
Lixeira onde fica temporariamente armazenado até a Lixeira ser esvaziada. Com isso, você tem a opor-
tunidade de recuperar arquivos excluídos acidentalmente e restaurá-los para os locais originais. Para
excluir arquivos sem passar pela lixeira, basta utilizar a combinação de teclas SHIFT + DELETE.
Propriedades da Lixeira
→ Tamanho – Por padrão, o Windows 10 realiza um cálculo para definir o tamanho da lixeira da
unidade. Nesse caso, funciona assim: 10 % de 40 GB + 5 % do restante da unidade. Porém, é im-
portante destacar que o usuário poderá alterar o tamanho da lixeira.
→ Não mover arquivos para a lixeira – Caso essa opção seja ativada pelo usuário, a lixeira da unidade
será desabilitada. Por padrão, a lixeira vem habilitada.
→ Exibir caixa de diálogo de confirmação de exclusão – No Windows 10, por padrão, essa opção
vem desativada, ou seja, ao excluir um arquivo para a lixeira, o Windows 10 não solicita confir-
mação de exclusão. Porém, a qualquer momento o usuário poderá ativar a caixa de exclusão.
→ Para acessar as propriedades da lixeira, basta clicar com o botão direito do mouse sobre o ícone da
lixeira presente na área de trabalho e, em seguida, escolher a opção Propriedades.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
3
AlfaCon Concursos Públicos
CONTEÚDO PROGRAMÁTICO
ÍNDICE
Classificação de Software�����������������������������������������������������������������������������������������������������������������������������������2
Software Livre��������������������������������������������������������������������������������������������������������������������������������������������������������������������2
4 Liberdades de Software Livre�����������������������������������������������������������������������������������������������������������������������������������3
Software Proprietário��������������������������������������������������������������������������������������������������������������������������������������������������������4
Freeware������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4
Shareware����������������������������������������������������������������������������������������������������������������������������������������������������������������������������4
Demo�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4
Beta��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
1
AlfaCon Concursos Públicos
Classificação de Software
Em termos técnicos, podemos dizer que o conceito de classificação de software está atrelado ao tipo
de licença empregada a um software quando ele é registrado. Esse conceito é associado a uma forma
de registrar um programa, como se fosse de uma obra literária ou musical, por exemplo, mas que nesse
caso é voltado para softwares (programas de computador). Em termos mais simples, podemos dizer
que Classificação de Software é a “patente de registro” empregada a um programa de computador.
Quando se desenvolve um programa de computador, são gerados vários códigos de programação
para se chegar ao produto final, que é um software. E quando se deseja registrar um programa, serão
registrados em nome do autor os códigos de programação gerados para criar esse programa e qual
é a finalidade dessa obra em específico, se é um editor de texto, um jogo simples, um navegador de
internet, por exemplo. Trazendo para um caso prático, imagine que você acabou de desenvolver um
software e precisa registrar esse programa em seu nome ou no nome da sua empresa, para requerer
seus direitos sobre essa obra quando necessário garantir sua propriedade intelectual, sendo isso ga-
rantido por lei. Então, para isso acontecer, você deve ir até uma agência específica, que desempenha
esse papel, e apresentar seus códigos de programa do software para registrar o programa conforme
sua necessidade. Uma observação muito importante é que um desenvolvedor de software não é
obrigado a registrar um programa em seu nome ou em nome da sua empresa, podendo fazer uso do
programa a qualquer momento ou compartilhá-lo na web livremente, mas não será possível requerer
seus direitos sobre aquela obra quando for necessário.
Existem vários tipos específicos de classificação de um programa, podendo um software ser
registrado para aquisição de forma gratuita ou comercializada e também é possível registrar um
software para que os seus códigos-fonte, códigos de programação, sejam disponibilizados ou não
para quem faz uso do programa. Para cada tipo de registro, existe um nome técnico descrito na In-
formática, são eles: Software Livre e Software Proprietário, que são os principais tipos de classifica-
ção de software e também os tipos que mais aparecem em provas de concurso; e Software Gratuito,
Comercial e Software em Domínio Público, que são formas de classificação existente, que não são
tão frequentes em provas de concurso. Para cada tipo de classificação e software, existem regras es-
pecíficas que geralmente são apresentadas para o candidato em questões. Vejamos agora especifica-
mente cada um dos tipos de classificação de software.
Software Livre
O tipo de classificação de Software Livre é muito confundido pelos alunos, pois associam os
programas assim registrados a uma forma gratuita de aquisição, em outras palavras, programas
classificados como Software Livre são sempre gratuitos. Cuidado, pois isso não é verdade, pode ou
não ser gratuito, ou seja, os programas registrados como Software Livre podem ser disponibilizados
de forma gratuita ou da forma comercializada. Quem deverá impor essa condição de aquisição ao
software é o fabricante do programa. Isso significa que não é uma regra os programas classificados
como livres serem adquiridos de forma gratuita.
A principal característica de um Software Livre diz respeito à propriedade do código-fonte,
códigos de programação, em que estes códigos não estarão disponíveis somente para o desenvolve-
dor do programa ou para a empresa fabricante. Software Livre tem como principal característica os
códigos-fonte estarem disponíveis para os usuários que adquirirem o programa.
Devido ao fato de termos acesso aos códigos de programação de um Software Livre, podemos
dizer então que esse tipo de classificação de software é caracterizado pela possibilidade de estudar-
mos os códigos-fonte quando necessário, pois se temos acesso aos códigos-fonte do programa, isso
se torna possível. Outra característica, que também está relacionada ao fato de termos acesso aos
códigos-fonte, é a possibilidade de adaptar esse software para as nossas necessidades, pois se temos
acesso aos códigos de programação, então podemos alterá-lo ou adaptá-lo, e se não soubermos pro-
gramar, então contratamos um serviço particular para realizar essas ações.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
2
AlfaCon Concursos Públicos
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
3
AlfaCon Concursos Públicos
Software Proprietário
De um modo geral, pode-se classificar como software proprietário todo aquele que não se
enquadra, de alguma forma, nas definições de software livre e de código aberto, fornecidas pela Free
Software Foundation e pela Open Source Initiative, respectivamente (GNU, 2011). Usualmente, o
software proprietário tem restrições sobre reprodução, distribuição ou uso dele. Portanto, é conside-
rado como software proprietário aquele que, sendo gratuito ou não, entre outras características, não
nos permite acesso ao seu código fonte.
Freeware
Software gratuito ou freeware é qualquer programa de computador cuja utilização não
implica o pagamento de licenças de uso ou royalties. Apesar de ser chamado de free (do inglês livre),
esse software não é software livre, isso acontece porque além do código-fonte não ser aberto ainda
possui licenças restritivas, limitando o uso comercial, por exemplo. Portanto, podemos definir
Freeware como sendo um software gratuito que possui suas funcionalidades completas por tempo
ilimitado sem custo monetário. Sua licença pode restringir o tipo de uso, como uso para fins não
lucrativos, não comerciais, uso acadêmico, entre outros.
Shareware
São softwares que funcionam por um determinado período de tempo (chamado período de avaliação)
e depois o usuário deve decidir se adquire ou não o produto, ou seja, é o famoso “gratuito para testar”.
Demo
Como o próprio nome já diz, versão demo é uma demonstração do produto. Existem no
mercado diversas empresas desenvolvedoras de programas e jogos que disponibilizam esse tipo de
versão. A versão demo tem limitações de uso e não possui todos os recursos do programa. É muito
comum a distribuição dessas versões para jogos. Diferentemente do Shareware, a versão demo não
possui prazo determinado para a sua utilização.
Beta
Quando um programa ainda está na sua fase de desenvolvimento e a empresa desenvolvedora quer
testar as suas funcionalidades e descobrir possíveis falhas de programação, a empresa lança uma versão beta,
ou seja, se você não quer ser a cobaia, não instale em seu computador um programa versão beta.
Lei do Direito Autoral nº 9.610, de 19 de Fevereiro de 1998: Proíbe a reprodução total ou parcial desse material ou divulgação com
fins comerciais ou não, em qualquer meio de comunicação, inclusive na Internet, sem autorização do AlfaCon Concursos Públicos.
4
alfaconcursos.com.br
SUMÁRIO
SISTEMA OPERACIONAL GNU/LINUX ................................................................................................................ 2
O QUE É LINUX? ............................................................................................................................................. 2
PROJETO GNU ................................................................................................................................................ 2
DISTRIBUIÇÕES LINUX.................................................................................................................................... 2
AMBIENTE GRÁFICO ...................................................................................................................................... 3
ÁRVORE DE DIRETÓRIOS DO LINUX ............................................................................................................... 3
PROJETO GNU
Em 1983, o programador americano Richard Stallman iniciou o projeto GNU para criar
um sistema operacional de código aberto que funcionasse do mesmo modo que o sistema
operacional Unix. O Unix foi um sistema que definiu conceitos técnicos utilizados por diversos
sistemas operacionais inspirados nele. O Unix original foi desenvolvido na década de 1970
pelos pesquisadores Ken Thompson e Dennis Ritchie (entre outros), no centro de pesquisas
Bell Labs da empresa AT&T. O projeto GNU é uma dessas variantes do Unix original, porém
com a premissa de ser desenvolvido em Código Aberto.
A partir da década de 1990, o projeto GNU – equipado com o kernel Linux – deu origem a
inúmeros sistemas operacionais de código aberto, cada um organizando, aprimorando e
criando novos programas à sua maneira. Esses sistemas operacionais são chamados
Distribuições Linux.
DISTRIBUIÇÕES LINUX
Além de conter o kernel Linux e programas GNU, uma distribuição Linux normalmente
agrega outros recursos para tornar sua utilização mais simples. Além de oferecerem um
conjunto completo de aplicativos prontos para uso, as distribuições mais populares podem
atualizar e instalar novos programas automaticamente. Esse recurso é chamado gestão de
pacotes. O gestor de pacotes da distribuição elimina o risco de instalar um programa
incompatível ou mal intencionado.
AMBIENTE GRÁFICO
É um software feito para facilitar e tornar prática a utilização do computador por meio
de representações visuais do Sistema Operacional. Para Windows temos apenas o ambiente
gráfico padrão. Para Linux temos vários ambientes gráficos, entre eles, o KDE, Unity, Xfce,
Lxde, Cinnamon e o Gnome.
/sbin Assim como o /bin, este diretório armazena executáveis, mas com um
diferencial: são aplicativos utilizados por administradores de sistema com o propósito de
realizar funções de manutenção e outras tarefas semelhantes.
/home Nesse diretório ficam os arquivos pessoais, como, por exemplo, documentos e
fotografias. Vale destacar que o diretório pessoal do superusuário não fica no mesmo local, e
sim em /root.
Referências Bibliográficas
Páginas da internet
https://help.ubuntu.com/kubuntu/desktopguide/pt_BR/directories-file-systems.html
https://www.diolinux.com.br/2011/05/os-diretotios-do-linux.html
https://canaltech.com.br/linux/entendendo-a-estrutura-de-diretorios-do-linux/
SUMÁRIO
SISTEMA OPERACIONAL GNU/LINUX ................................................................................................................ 2
TERMINAL ...................................................................................................................................................... 2
COMANDOS BÁSICOS DO LINUX ................................................................................................................... 2
Comando pwd Imprime na tela o caminho do diretório atual por extenso, por
exemplo, /home/rafael/aula.
Comando ls Serve para listar os arquivos e diretórios dentro do diretório atual. Para
incluir os arquivos ocultos, use "ls -a". No Linux, os arquivos que começam com um “.” são
entendidos como arquivos ocultos. Para uma lista longa, ou seja, com detalhes, use “ls –l”.
Comando rm Serve para remover tanto arquivos quanto diretórios, de acordo com os
parâmetros usados. Para remover um arquivo simples, basta usá-lo diretamente, como em: rm
arquivo. Para remover um diretório e todos os seus arquivos e subdiretórios, adicione a opção
"-r", como em: rm –r.
Comando touch Com a utilização desse recurso é possível criar arquivos vazios.
Comando shutdown Pode ser utilizado tanto para desligar quanto para reinicializar
o sistema. Para desligar o sistema imediatamente, digite shutdown -h now. Para enviar uma
mensagem para os usuários e desligar o sistema em 15 minutos, basta digitar shutdown -h
+15 "O sistema será encerrado em 15 minutos". Para reinicializar o sistema imediatamente,
digite shutdown -r now.
Comando sudo A palavra sudo significa “substitute user do“. O sudo permite que um
usuário rode programas como se fosse um outro usuário os rodando – geralmente como
usuário root.
Referências Bibliográficas
Páginas da internet
https://www.vivaolinux.com.br/
htttp://www.guialinux.uniriotec.br
https://www.hostinger.com.br/tutoriais/
SUMÁRIO
SISTEMA OPERACIONAL GNU/LINUX ................................................................................................................ 2
PERMISSÕES NO LINUX ................................................................................................................................. 2
ALTERANDO PERMISSÕES ............................................................................................................................. 2
PERMISSÕES NUMÉRICAS.............................................................................................................................. 2
rwx
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx
Dessa forma, o comando chmod 721 aula.txt mudará as permissões do arquivo aula.txt
para –rwx -w- --x, ou seja, leitura, escrita e execução para o usuário dono, apenas escrita para
o grupo e somente execução para os demais.
Comando top Exibe na tela informações sobre o computador, incluindo o uso de
processamento e memória total e por processo.
Páginas da internet
https://www.vivaolinux.com.br/
http://www.guialinux.uniriotec.br
https://www.hostinger.com.br/tutoriais/
SUMÁRIO
SEGURANÇA DA INFORMAÇÃO .................................................................................................................... 2
CRIPTOGRAFIA ......................................................................................................................................... 2
TIPOS DE CRIPTOGRAFIAS ...................................................................................................................... 3
CRIPTOGRAFIA SIMÉTRICA ................................................................................................................... 3
DISTRIBUIÇÃO DE CHAVE ..................................................................................................................... 3
CRIPTOGRAFIA ASSIMÉTRICA ............................................................................................................... 3
SEGURANÇA DA INFORMAÇÃO
CRIPTOGRAFIA
A criptografia é a ciência que estuda os princípios, meios e métodos para tornar
ininteligíveis (que não se pode entender) as informações, por meio de um processo de cifragem,
e para restaurar informações cifradas para sua forma original, inteligível (claro,
compreensível), por meio de um processo de decifragem. O objetivo da criptografia não é
esconder a existência da mensagem, mas sim de apenas ocultar o seu significado, ou seja, a
diferença entre a criptografia e esteganografia é que a primeira oculta o significado da
mensagem, enquanto a segunda oculta a existência da mensagem.
A criptografia também se preocupa com as técnicas de criptoanálise e de ataque de força
bruta, que dizem respeito a formas de recuperar aquela informação sem se ter os parâmetros
completos para a decifragem.
Nesse caso, a análise criptográfica ou criptoanálise explora as características do algoritmo
para tentar deduzir determinado texto claro ou para deduzir a chave em uso. Se o ataque tiver
sucesso em deduzir a chave, o efeito é catastrófico: todas as mensagens futuras e passadas
criptografadas com essa chave estarão comprometidas.
O segundo método, conhecido como ataque de força bruta, consiste em tentar todas as
chaves possíveis em um trecho de texto codificado até se obter uma tradução inteligível para
texto claro. Em média, metade de todas as chaves possíveis precisa ser testada para obter
sucesso (Stallings, William).
A tabela a seguir mostra quanto tempo está envolvido nos vários tamanhos de chave. A
tabela mostra os resultados para cada tamanho de chave, considerando que é necessário 1 µs
para realizar uma única decriptografia, uma ordem de magnitude razoável para os
computadores atuais. Com o uso de organizações de microprocessadores extremamente
equivalentes, podem ser obtidas velocidades de processamento muitas ordens de magnitude
mais altas. A última coluna da tabela leva em conta os resultados para um sistema que pode
processar 1 milhão de chaves por microssegundo. Como se pode ver, nesse nível de
desempenho, uma chave de 56 bits não pode mais ser considerada segura em termos
computacionais.
TIPOS DE CRIPTOGRAFIAS
A criptografia pode ser de dois tipos: simétrica ou assimétrica. Nesse caso, a criptografia
simétrica utiliza um algoritmo de criptografia que usa somente uma chave, tanto para cifrar
como para decifrar, ou seja, essa chave deve ser mantida em segredo para garantir a
confidencialidade da mensagem. Já a criptografia assimétrica, usa um par de chaves
criptográficas distintas (privada e pública) e matematicamente relacionadas. A chave pública
está disponível para todos que queiram cifrar informações para o dono da chave privada ou
para verificação de uma assinatura digital criada com a chave privada correspondente,
portanto, a chave privada é mantida em segredo pelo seu dono e pode decifrar informações ou
gerar assinaturas digitais.
CRIPTOGRAFIA SIMÉTRICA
A função essencial da criptografia é a garantia de confidencialidade ou de sigilo da
informação, em que há a proteção dos dados contra divulgação não autorizada.
DISTRIBUIÇÃO DE CHAVE
Para que a criptografia simétrica funcione, os dois lados de uma troca segura precisam ter
a mesma chave, e essa chave tem de estar protegida contra o acesso de terceiros. Além disso,
mudanças frequentes de chave são desejáveis para limitar a quantidade de dados
comprometidos, caso um oponente aprenda a chave. Portanto, o poder de qualquer sistema de
criptografia está na técnica de distribuição de chave. Assim, a troca de chaves, é um dos grandes
desafios da criptografia simétrica. Mais do que a troca de chaves, o gerenciamento delas,
que envolve tempo de validade, armazenamento, geração, uso e substituição.
CRIPTOGRAFIA ASSIMÉTRICA
A criptografia de chave pública ou assimétrica utiliza um par de chaves para a troca de
mensagens. Uma chave do par é utilizada para cifrar a mensagem, que só pode ser decifrada
pelo par correspondente. Dessa forma, diferentemente da criptografia simétrica, em que a
chave secreta é compartilhada, na criptografia de chave pública não é necessária a troca de
chaves privadas.
O par de chaves da criptografia de chave pública é composto por uma chave pública
e uma chave privada. A chave pública pode ser divulgada publicamente, e é utilizada para cifrar
uma mensagem. Uma vez cifrada, essa mensagem só poderá ser decifrada pelo detentor da
chave privada, que nunca é compartilhada.
Desta forma, caso a mensagem seja capturada em um canal inseguro, o atacante não
poderá recuperar a mensagem original sem a chave privada correspondente, que está com o
seu dono. Essa chave privada, em tese, nunca foi transmitida, o que reduz as chances de seu
comprometimento. O uso de duas chaves tem profundas consequências nas áreas da
privacidade, distribuição de chave e autenticação.
O algoritmo de chave pública mais conhecido é o RSA. Esse algoritmo criptográfico utiliza
a fatoração de números primos grandes para proteger as informações. De uma forma bastante
geral, a geração das chaves é feita a partir de dois números primos, que passam por uma série
de cálculos até que se chegue às chaves pública e privada. Além do algoritmo RSA, podemos
citar também o DSA e o ECC.
Referências
SUMÁRIO
SEGURANÇA DA INFORMAÇÃO .................................................................................................................... 2
CERTIFICADO DIGITAL .............................................................................................................................. 2
ICP-BRASIL ........................................................................................................................................... 3
AC - RAIZ .............................................................................................................................................. 3
AC - AUTORIDADE CERTIFICADORA ...................................................................................................... 3
AR - AUTORIDADE DE REGISTRO ........................................................................................................... 4
AUTENTICAÇÃO DE MENSAGEM .............................................................................................................. 4
MÉTODOS DE AUTENTICAÇÃO DE MENSAGEM .................................................................................... 4
AUTENTICAÇÃO MEDIANTE CRIPTOGRAFIA SIMÉTRICA ........................................................................ 4
SEGURANÇA DA INFORMAÇÃO
CERTIFICADO DIGITAL
Como ter certeza que realmente uma chave pública pertence a uma determinada
pessoa?
A solução para esse problema é o certificado de chave pública. Na prática, o certificado
digital ICP-Brasil funciona como uma identidade virtual que permite a identificação segura e
inequívoca do autor de uma mensagem ou transação feita em meios eletrônicos, como a web.
Esse documento eletrônico é gerado e assinado por uma terceira parte confiável, ou seja, uma
Autoridade Certificadora (AC) que, seguindo regras estabelecidas pelo Comitê Gestor da ICP-
Brasil, associa uma entidade (pessoa, processo, servidor) a um par de chaves criptográficas. Os
certificados contêm os dados de seu titular conforme detalhado na Política de Segurança de
cada Autoridade Certificadora.
O certificado digital ICP-Brasil é um documento eletrônico, que pode ser emitido para
cidadãos, pessoas físicas, e empresas, pessoas jurídicas. O uso do certificado ICP-Brasil garante
validade jurídica, autenticidade, confidencialidade, integridade e não repúdio às operações
realizadas por meio dele em ambiente virtual.
Com esse documento digital é possível realizar uma série de procedimentos virtualmente,
sem a necessidade de se deslocar presencialmente à sede de órgãos governamentais e de
empresas ou imprimir documentos.
ICP-BRASIL
A Infraestrutura de Chaves Públicas Brasileira – ICP-Brasil é uma cadeia hierárquica de
confiança que viabiliza a emissão de certificados digitais para identificação virtual do cidadão.
Observa-se que o modelo adotado pelo Brasil foi o de certificação com raiz única, sendo
que o ITI (Instituto nacional de tecnologia da informação), além de desempenhar o papel de
Autoridade Certificadora Raiz – AC-Raiz, também tem o papel de credenciar e descredenciar os
demais participantes da cadeia, supervisionar e fazer auditoria dos processos.
AC - RAIZ
AC - AUTORIDADE CERTIFICADORA
AR - AUTORIDADE DE REGISTRO
AUTENTICAÇÃO DE MENSAGEM
A criptografia protege contra ataques passivos (espionagem). Uma necessidade diferente
é proteger contra ataques ativos (falsificação de dados e transações). A proteção contra esses
ataques é conhecida como autenticação de mensagem.
Referências
SUMÁRIO
SEGURANÇA DA INFORMAÇÃO .................................................................................................................... 2
CÓDIGO DE AUTENTICAÇÃO DE MENSAGEM............................................................................................ 2
SEGURANÇA DA INFORMAÇÃO
CÓDIGO DE AUTENTICAÇÃO DE MENSAGEM
Uma técnica de autenticação de mensagem envolve o uso de uma chave secreta para gerar
um pequeno um pequeno bloco de dados, conhecido como código de autenticação de mensagem
(MAC), que é anexado à mensagem. Dentro dessa técnica, duas partes em comunicação, digamos
A e B, compartilham uma chave secreta comum. Quando A tem uma mensagem M a ser enviada
para B, ele calcula o código de autenticação de mensagem. Em seguida, a mensagem, juntamente
com o código, é transmitida para o destinatário pretendido. O destinatário efetua o mesmo
cálculo na mensagem recebida, usando a mesma chave secreta, para gerar um novo código de
autenticação de mensagem. O código recebido é comparado com o código calculado. Se
considerarmos que apenas o receptor e o emissor sabem a identidade da chave secreta, e se o
código recebido corresponde ao código calculado, então:
1. O receptor tem a garantia de que a mensagem não foi alterada. Se um oponente alterar
a mensagem, mas não alterar o código, então, o cálculo do receptor irá diferir do código
recebido. Considerando-se que o oponente não sabe a chave secreta, ele não pode
alterar o código para corresponder às alterações na mensagem.
2. O receptor tem a garantia de que a mensagem é do suposto emissor. Como ninguém
mais conhece a chave secreta, ninguém mais poderia preparar uma mensagem com
um código correto.
IMPORTANTE – Vários algoritmos podem ser usados para gerar o código, por
exemplo, o DES. Em geral, utiliza-se um código de 16 ou 32 bits.
Referências
SUMÁRIO
SEGURANÇA DA INFORMAÇÃO .................................................................................................................... 2
FUNÇÃO DE HASH UNIDIRECIONAL .......................................................................................................... 2
ASSINATURA DIGITAL ............................................................................................................................... 2
PRINCÍPIOS BÁSICOS DE SEGURANÇA DA INFORMAÇÃO ....................................................................... 3
SEGURANÇA DA INFORMAÇÃO
FUNÇÃO DE HASH UNIDIRECIONAL
Resultado da ação de algoritmos que fazem o mapeamento de uma sequência de bits de
tamanho arbitrário para uma sequência de bits de tamanho fixo menor - conhecido como
resultado hash - de forma que seja muito difícil encontrar duas mensagens produzindo o
mesmo resultado hash (resistência à colisão) e que o processo reverso também não seja
realizável (dado um hash, não é possível recuperar a mensagem que o gerou).
Para verificar a integridade de um arquivo, por exemplo, você pode calcular o hash dele e,
quando julgar necessário, gerar novamente esse valor. Se os dois hashes forem iguais então
você pode concluir que o arquivo não foi alterado. Caso contrário, esse pode ser um forte indício
de que o arquivo esteja corrompido ou que foi modificado. Exemplos de métodos de hash são:
MD5 (128 bits), SHA-1 (160 bits), SHA-256 e SHA-512.
ASSINATURA DIGITAL
A assinatura digital permite comprovar a autenticidade e a integridade de uma
informação, ou seja, a assinatura digital comprova que a pessoa criou ou concorda com um
documento assinado digitalmente, como a assinatura de próprio punho comprova a autoria de
um documento escrito.
A assinatura digital baseia-se no fato de que apenas o dono conhece a chave privada e que,
se ela foi usada para codificar uma informação, então apenas seu dono poderia ter feito isto. A
verificação da assinatura é feita com o uso da chave pública, pois se o texto foi codificado com
a chave privada, somente a chave pública correspondente pode decodificá-lo.
Referências
SUMÁRIO
SEGURANÇA DA INFORMAÇÃO .................................................................................................................... 2
GERENCIAMENTO DE CHAVES CRIPTOGRÁFICAS ...................................................................................... 2
CRIPTOGRAFIA SIMÉTRICA ................................................................................................................... 2
CRIPTOGRAFIA ASSIMÉTRICA ............................................................................................................... 2
PRINCÍPIOS BÁSICOS DE SEGURANÇA DA INFORMAÇÃO ....................................................................... 3
SEGURANÇA DA INFORMAÇÃO
GERENCIAMENTO DE CHAVES CRIPTOGRÁFICAS
CRIPTOGRAFIA SIMÉTRICA
CRIPTOGRAFIA ASSIMÉTRICA
A criptografia de chave pública ou assimétrica utiliza um par de chaves para a troca de
mensagens. Uma chave do par é utilizada para cifrar a mensagem, que só pode ser decifrada
pelo par correspondente. Dessa forma, diferentemente da criptografia simétrica, em que a
chave secreta é compartilhada, na criptografia de chave pública não é necessária a troca de
chaves privadas.
Quando Alice receber a mensagem criptografada, ela utiliza sua chave privada para
decriptografar a chave de sessão e, em seguida, com essa chave de sessão, ela poderá
decriptografar a mensagem original.
Referências
CÓDIGOS MALICIOSOS
De acordo com a cartilha de segurança (cartilha.cert.br), códigos maliciosos, também conheci-
dos como pragas e malware, são programas desenvolvidos para executar ações danosas e atividades
maliciosas em equipamentos, como computadores, modems, switches, roteadores e dispositivos
móveis (tablets, celulares, smartphones etc.).
Um atacante pode instalar um código malicioso após invadir um equipamento ou explorando
alguma vulnerabilidade existente nos programas nele instalados.
Os equipamentos também podem ser infectados caso alguém:
ͫ acesse páginas web maliciosas, usando navegadores vulneráveis;
ͫ acesse mídias removíveis infectadas, como pen-drives;
ͫ execute arquivos infectados, obtidos em anexos de mensagens eletrônicas, via mídias
removíveis, em páginas web, redes sociais ou diretamente de outros equipamentos.
Após infectar o equipamento, o código malicioso pode executar ações como se fosse o usuá-
rio, como acessar informações, apagar arquivos, criptografar dados, conectar-se à internet, enviar
mensagens, e, ainda, instalar outros códigos maliciosos. A melhor prevenção contra os códigos
maliciosos é impedir que a infecção ocorra pois nem sempre é possível reverter as ações danosas
já feitas ou recuperar totalmente os dados.
Malware é a combinação das palavras inglesas “malicious” e “software” e se refere a softwares indeseja-
dos, tais como vírus, worms, cavalos de Troia (trojans) e spywares.
DEFINIÇÕES
ATAQUE
Tentativa de destruir, expor, alterar, inutilizar, roubar ou obter acesso não autorizado a um ativo.
ATIVO
Qualquer coisa que tenha valor para a organização. Essa é uma definição ampla, pode-se pen-
sar em instalações, informação, software, hardware, serviços impressos (papéis), mas também em
pessoas, habilidades, experiência e coisas intangíveis, como reputação e imagem.
AMEAÇA
Causa potencial de um incidente indesejado, a qual pode resultar no dano a um sistema ou
organização.
VULNERABILIDADE
Fraqueza de um ativo ou grupo de ativos que pode ser explorada por uma ou mais ameaças.
Sendo assim, uma vulnerabilidade caracteriza a ausência ou a fraqueza de uma proteção que pode
ser explorada.
Essa vulnerabilidade pode ser um serviço rodando em um servidor, aplicações ou sistemas
operacionais desatualizados, uma porta aberta no firewall, uma segurança física fraca que permita
CÓDIGOS MALICIOSOS 3
a qualquer pessoa entrar em uma sala de servidores ou a não aplicação de gestão de senhas em
servidores e estações de trabalho.
VÍRUS
Pequeno programa de computador que propositalmente se replica, algumas vezes de forma
alterada. As versões replicadas do vírus original são, em virtude dessa definição, também vírus. Para
que o vírus se espalhe, ele depende de portadores que contenham um código executável.
Assim que o portador é ativado, o vírus busca por novos portadores adequados e tenta infec-
tá-los, ou seja, para que possa se tornar ativo e dar continuidade ao processo de infecção, o vírus
depende da execução do programa ou arquivo hospedeiro.
Os portadores eram tradicionalmente só programas, mas atualmente documentos também
podem agir como hospedeiros para um vírus, uma vez que eles possuem cada vez mais códigos
executáveis, tais como macros, VBScript ou ActiveX.
Os vírus são equipados com uma carga útil (payload) que contém todas as tarefas que não
sejam aquelas necessárias para a replicação. Essa carga é, geralmente, mas não necessariamente
sempre, destrutiva.
Partes de um vírus de computador:
ͫ Mecanismo de infecção: Os meios pelos quais um vírus se espalha ou se propaga, habil-
itando-o a se reproduzir. O mecanismo é também denominado vetor de infecção.
ͫ Mecanismo de ativação: O evento ou condição que determina quando a carga útil é
ativada ou entregue, às vezes conhecido como bomba lógica.
ͫ Carga útil: O que o vírus faz, além de se espalhar. A carga útil pode envolver algum dano
ou atividade benigna, porém, notável.
De acordo com a cartilha de segurança (cartilha.cert.br), há diferentes tipos de vírus. Alguns
procuram permanecer ocultos, infectando arquivos do disco e executando uma série de atividades
sem o conhecimento do usuário. Há outros que permanecem inativos durante certos períodos,
entrando em atividade apenas em datas específicas. Alguns dos tipos de vírus mais comuns são:
ͫ Vírus propagado por e-mail: recebido como um arquivo anexo a um e-mail cujo conteúdo
tenta induzir o usuário a clicar sobre este arquivo, fazendo com que seja executado.
Quando entra em ação, infecta arquivos e programas e envia cópias de si mesmo para
os e-mails encontrados nas listas de contatos gravadas no computador.
ͫ Vírus de script: escrito em linguagem de script, como VBScript e JavaScript, e recebido
ao acessar uma página Web ou por e-mail, como um arquivo anexo ou como parte do
próprio e-mail escrito em formato HTML. Pode ser automaticamente executado, depen-
dendo da configuração do navegador Web e do programa leitor de e-mails do usuário.
ͫ Vírus de macro: tipo específico de vírus de script, escrito em linguagem de macro, que
tenta infectar arquivos manipulados por aplicativos que utilizam esta linguagem como,
os que compõem o Microsoft Office (Excel, Word, PowerPoint, entre outros).
ͫ Vírus de telefone celular: vírus que se propaga de celular para celular por meio da tecno-
logia bluetooth ou de mensagens MMS (Multimedia Message Service). A infecção ocorre
quando um usuário permite o recebimento de um arquivo infectado e o executa. Após
infectar o celular, o vírus pode destruir ou sobrescrever arquivos, remover ou transmitir
4
WORM
Um worm é um pequeno programa de computador que propositalmente se replica. Os resul-
tados da replicação são cópias da propagação original para outros sistemas, fazendo uso dos equi-
pamentos da rede de seu hospedeiro, portanto, worm é um programa capaz de se propagar auto-
maticamente pelas redes, enviando cópias de si mesmo de computador para computador.
Vírus e worms têm uma série de características distintas. Um vírus pode atacar seu hospedeiro
por meio de diferentes portadores e infectar novos portadores transferindo código ativo para estes.
Um worm, por outro lado, não depende de um usuário para se espalhar; assim que o worm é ati-
vado, ele consegue se espalhar automaticamente. É isso que habilita os worms a infectar grandes
áreas em um curto período.
Diferentemente do vírus, o worm não se propaga por meio da inclusão de cópias de si mesmo
em outros programas ou arquivos, mas sim pela execução direta de suas cópias ou pela exploração
automática de vulnerabilidades existentes em programas instalados em computadores.
Worms são notadamente responsáveis por consumir muitos recursos, devido à grande quan-
tidade de cópias de si mesmo que costumam propagar e, como consequência, podem afetar o
desempenho de redes e a utilização de computadores.
O processo de propagação e infecção dos worms ocorre da seguinte maneira:
CÓDIGOS MALICIOSOS 5
CÓDIGOS MALICIOSOS
BOT
De acordo com a cartilha de segurança (cartilha.cert.br), bot é um programa que dispõe de
mecanismos de comunicação com o invasor que permitem que ele seja controlado remotamente.
Possui processo de infecção e propagação similar ao do worm, ou seja, é capaz de se propagar auto-
maticamente, explorando vulnerabilidades existentes em programas instalados em computadores.
A comunicação entre o invasor e o computador infectado pelo bot pode ocorrer via canais
de IRC, servidores Web e redes do tipo P2P, entre outros meios. Ao se comunicar, o invasor pode
enviar instruções para que ações maliciosas sejam executadas, como desferir ataques, furtar dados
do computador infectado e enviar spam.
Um computador infectado por um bot costuma ser chamado de zumbi (zombie computer), pois
pode ser controlado remotamente, sem o conhecimento do seu dono. Também pode ser chamado
de spam zombie quando o bot instalado o transforma em um servidor de e-mails e o utiliza para
o envio de spam.
BOTNET
Botnet é uma rede formada por centenas ou milhares de computadores zumbis e que permite
potencializar as ações danosas executadas pelos bots.
Quanto mais zumbis participarem da botnet mais potente ela será. O atacante que a controlar,
além de usá-la para seus próprios ataques, também pode alugá-la para outras pessoas ou grupos
que desejem que uma ação maliciosa específica seja executada.
Algumas das ações maliciosas que costumam ser executadas por intermédio de botnets são:
ataques de negação de serviço, propagação de códigos maliciosos (inclusive do próprio bot), coleta
de informações de um grande número de computadores, envio de spam e camuflagem da identi-
dade do atacante (com o uso de proxies instalados nos zumbis).
O esquema apresentado a seguir exemplifica o funcionamento básico de uma botnet:
Um atacante propaga um tipo específico de bot na esperança de infectar e conseguir a maior
quantidade possível de zumbis;
os zumbis ficam então à disposição do atacante, agora seu controlador, à espera dos comandos
a serem executados;
quando o controlador deseja que uma ação seja realizada, ele envia aos zumbis os comandos
a serem executados, usando, por exemplo, redes do tipo P2P ou servidores centralizados;
os zumbis executam então os comandos recebidos, durante o período predeterminado pelo
controlador;
quando a ação se encerra, os zumbis voltam a ficar à espera dos próximos comandos a serem
executados.
HOAX
Um hoax (ou seja, boato ou farsa) é uma mensagem que tenta convencer o leitor de sua
veracidade e depois busca persuadi-lo a realizar uma determinada ação. A propagação de um hoax
depende de os leitores deliberadamente enviarem a mensagem para outras vítimas em potencial,
que também podem fazer o mesmo.
A identificação do hoax é o primeiro passo para parar a sua propagação. A carga útil de um
hoax não é técnica por natureza, é psicológica. Ao lidar com a emoção das pessoas, o hoax tenta
persuadir o leitor a enviá-lo a outras pessoas (uma forma de engenharia social). Este é quase sempre
o propósito de um hoax, embora possa, em certas ocasiões, tentar convencer a pessoa a depositar
dinheiro, fornecer informação pessoal (phishing) ou coisas similares. Correntes de e-mail são a mais
significativa e bem-sucedida forma de hoax. Correntes de e-mail quando enviadas a muitas pessoas
consomem recursos do servidor de e-mails, largura de banda etc.
SPAM
Spam é o nome usado para se referir a mensagens indesejadas. O termo é normalmente usado
para e-mails indesejados, mas as mensagens publicitárias indesejadas em websites também são
consideradas spam. Os custos do spam são passados para os destinatários; em comparação com
as poucas pessoas que estão realmente interessadas nessas mensagens, a maioria desperdiça
uma quantidade significativa de tempo removendo as mensagens de sua caixa de correio. Um
filtro de spam pode auxiliar nesse processo. Há também algumas outras ações que os usuários de
computador podem fazer para combater o spam. Uma delas é nunca responder uma mensagem
de spam – mesmo “desativar” ou “cancelar” acaba causando mais spam, uma vez que assim você
confirma para quem enviou o spam que seu e-mail funciona e o spam, sem dúvida, irá aumentar.
4
Além disso, não é recomendável compartilhar mensagens de spam nem distribuir endereços
de e-mail. Para ocultar endereços de e-mail, pode-se usar a função “cópia oculta” (Blind Carbon
Copy – BCC), que está disponível no cliente de e-mail.
SPYWARE
Spyware é um programa projetado para monitorar as atividades de um sistema e enviar as
informações coletadas para terceiros.
Pode ser usado tanto de forma legítima quanto maliciosa, dependendo de como é instalado,
das ações realizadas, do tipo de informação monitorada e do uso que é feito por quem recebe as
informações coletadas. Pode ser considerado de uso:
ͫ Legítimo: quando instalado em um computador pessoal, pelo próprio dono ou com con-
sentimento deste, com o objetivo de verificar se outras pessoas o estão utilizando de
modo abusivo ou não autorizado.
ͫ Malicioso: quando executa ações que podem comprometer a privacidade do usuário e a
segurança do computador, como monitorar e capturar informações referentes à navegação
do usuário ou inseridas em outros programas (por exemplo, conta de usuário e senha).
Alguns tipos específicos de programas spyware são:
» Keylogger: capaz de capturar e armazenar as teclas digitadas pelo usuário no teclado
do computador. Sua ativação, em muitos casos, é condicionada a uma ação prévia
do usuário, como o acesso a um site específico de comércio eletrônico ou de Inter-
net Banking.
» Screenlogger: similar ao keylogger, capaz de armazenar a posição do cursor e a tela
apresentada no monitor, nos momentos em que o mouse é clicado, ou a região que
circunda a posição onde o mouse é clicado. É bastante utilizado por atacantes para
capturar as teclas digitadas pelos usuários em teclados virtuais, disponíveis princi-
palmente em sites de Internet Banking.
» Adware: projetado especificamente para apresentar propagandas. Pode ser usado
para fins legítimos, quando incorporado a programas e serviços, como forma de
patrocínio ou retorno financeiro para quem desenvolve programas livres ou presta
serviços gratuitos. Também pode ser usado para fins maliciosos, quando as propa-
gandas apresentadas são direcionadas, de acordo com a navegação do usuário e
sem que este saiba que tal monitoramento está sendo feito.
CÓDIGOS
MALICIOSOS
2
CÓDIGOS MALICIOSOS
BACKDOOR
Backdoor é um programa que permite o retorno de um invasor a um computador compro-
metido, por meio da inclusão de serviços criados ou modificados para este fim (cartilha.cert.br).
Pode ser incluído pela ação de outros códigos maliciosos, que tenham previamente infectado o
computador, ou por atacantes, que exploram vulnerabilidades existentes nos programas instalados
no computador para invadi-lo.
Após incluído, o backdoor é usado para assegurar o acesso futuro ao computador compro-
metido, permitindo que ele seja acessado remotamente, sem que haja necessidade de recorrer
novamente aos métodos utilizados na realização da invasão ou infecção e, na maioria dos casos,
sem que seja notado.
A forma usual de inclusão de um backdoor consiste na disponibilização de um novo serviço
ou na substituição de um determinado serviço por uma versão alterada, normalmente possuindo
recursos que permitem o acesso remoto. Programas de administração remota, como Back Orifice,
NetBus, SubSeven, VNC e Radmin, se mal configurados ou utilizados sem o consentimento do
usuário, também podem ser classificados como backdoors.
Há casos de backdoors incluídos propositalmente por fabricantes de programas, sob alegação
de necessidades administrativas. Esses casos constituem uma séria ameaça à segurança de um com-
putador que contenha um destes programas instalados, pois, além de comprometerem a privacidade
do usuário, também podem ser usados por invasores para acessarem remotamente o computador.
ͫ Trojan Destrutivo: altera/apaga arquivos e diretórios, formata o disco rígido e pode deixar
o computador fora de operação.
ͫ Trojan Clicker: redireciona a navegação do usuário para sites específicos, com o objetivo
de aumentar a quantidade de acessos a estes sites ou apresentar propagandas.
ͫ Trojan Proxy: instala um servidor de proxy, possibilitando que o computador seja utilizado
para navegação anônima e para envio de spam.
ͫ Trojan Spy: instala programas spyware e os utiliza para coletar informações sensíveis,
como senhas e números de cartão de crédito, e enviá-las ao atacante.
ͫ Trojan Banker ou Bancos: coleta dados bancários do usuário, por meio da instalação de
programas spyware que são ativados quando sites de internet banking são acessados. É
similar ao Trojan Spy, porém com objetivos mais específicos.
RANSOMWARE
É um tipo de código malicioso que torna inacessíveis os dados armazenados em um equipa-
mento, geralmente usando criptografia, e que exige pagamento de resgate (ransom) para restabe-
lecer o acesso ao usuário. O pagamento do resgate geralmente é feito via bitcoins.
Existem dois tipos de ransomware:
ͫ Ransomware Locker: impede acesso ao equipamento infectado.
ͫ Ransomware Crypto: impede acesso aos dados armazenados no equipamento infectado,
geralmente usando criptografia.
CÓDIGOS MALICIOSOS
ROOTKIT
Rootkit é um conjunto de programas e técnicas que permite esconder e assegurar a presença
de um invasor ou de outro código malicioso em um computador comprometido.
Rootkits são extremamente difíceis de detectar e infectam o sistema muitas vezes sem o usuá-
rio perceber. Eles podem se esconder e também se disfarçar enganando programas de detecção.
Mesmo quando o rootkit é removido, as mudanças que fez no sistema permanecem inalteradas
e são normalmente imperceptíveis. Em outras palavras, a única forma de ter certeza de que um
rootkit foi removido é formatar e reinstalar todo o sistema.
Em termos gerais, os rootkits podem trabalhar em dois níveis: no nível do kernel e no nível
do usuário. Processadores modernos conseguem lidar com programas no modo de kernel e no
modo de usuário, e essa diferença é fundamental: programas no modo kernel têm acesso a toda
a área de memória, enquanto aplicações no modo usuário são limitadas a segmentos específicos
da memória. Rootkits com estratégias de kernel podem, portanto, fazer quase tudo na memória
de trabalho. O propósito dessas ferramentas é ler, alterar ou influenciar os processos em execu-
ção, dados ou arquivos do sistema. Um rootkit ajuda o invasor a ganhar acesso ao sistema, sem o
usuário perceber nada.
O conjunto de programas e técnicas fornecido pelos rootkits pode ser usado para:
ͫ remover evidências em arquivos de logs;
ͫ instalar outros códigos maliciosos, como backdoors, para assegurar o acesso futuro ao
computador infectado;
ͫ esconder atividades e informações, como arquivos, diretórios, processos, chaves de
registro, conexões de rede etc.;
ͫ mapear potenciais vulnerabilidades em outros computadores, por meio de varreduras
na rede;
ͫ capturar informações da rede onde o computador comprometido está localizado, pela
interceptação de tráfego.
ATAQUES NA INTERNET
Ataques costumam ocorrer na internet com diversos objetivos, visando diferentes alvos e
usando variadas técnicas. Qualquer serviço, computador ou rede que seja acessível via internet
pode ser alvo de um ataque, assim como qualquer computador com acesso à internet pode parti-
cipar de um ataque.
Os motivos que levam os atacantes a desferir ataques na internet são bastante diversos,
variando da simples diversão até a realização de ações criminosas. Alguns exemplos são:
ͫ Demonstração de poder: mostrar a uma empresa que ela pode ser invadida ou ter os
serviços suspensos e, assim, tentar vender serviços ou chantageá-la para que o ataque
não ocorra novamente.
ͫ Prestígio: vangloriar-se, perante outros atacantes, por ter conseguido invadir computa-
dores, tornar serviços inacessíveis ou desfigurar sites considerados visados ou difíceis
CÓDIGOS MALICIOSOS 3
de serem atacados; disputar com outros atacantes ou grupos de atacantes para revelar
quem consegue realizar o maior número de ataques ou ser o primeiro a conseguir atingir
um determinado alvo.
ͫ Motivações financeiras: coletar e utilizar informações confidenciais de usuários para
aplicar golpes.
ͫ Motivações ideológicas: tornar inacessível ou invadir sites que divulguem conteúdo
contrário à opinião do atacante; divulgar mensagens de apoio ou contrárias a uma deter-
minada ideologia.
ͫ Motivações comerciais: tornar inacessível ou invadir sites e computadores de empresas
concorrentes, para tentar impedir o acesso dos clientes ou comprometer a reputação
destas empresas.
Para alcançar estes objetivos os atacantes costumam usar técnicas, como as descritas a seguir.
EXPLORAÇÃO DE VULNERABILIDADES
Uma vulnerabilidade é definida como uma condição que, quando explorada por um atacante,
pode resultar em uma violação de segurança. Exemplos de vulnerabilidades são falhas no projeto,
na implementação ou na configuração de programas, serviços ou equipamentos de rede.
Um ataque de exploração de vulnerabilidades ocorre quando um atacante, utilizando-se de
uma vulnerabilidade, tenta executar ações maliciosas, como invadir um sistema, acessar informa-
ções confidenciais, disparar ataques contra outros computadores ou tornar um serviço inacessível.
Esta técnica é possível devido a características do protocolo SMTP (Simple Mail Transfer Pro-
tocol) que permitem que campos do cabeçalho, como “From:” (endereço de quem enviou a men-
sagem), “Reply-To” (endereço de resposta da mensagem) e “Return-Path” (endereço para onde
possíveis erros no envio da mensagem são reportados), sejam falsificados.
Ataques deste tipo são bastante usados para propagação de códigos maliciosos, envio de spam
e em golpes de phishing. Atacantes utilizam-se de endereços de e-mail coletados de computadores
infectados para enviar mensagens e tentar fazer com que os seus destinatários acreditem que elas
partiram de pessoas conhecidas.
Exemplos de e-mails com campos falsificados são aqueles recebidos como sendo:
» de alguém conhecido, solicitando que você clique em um link ou execute um arquivo
anexo;
» do seu banco, solicitando que você siga um link fornecido na própria mensagem e
informe dados da sua conta bancária;
» do administrador do serviço de e-mail que você utiliza, solicitando informações
pessoais e ameaçando bloquear a sua conta caso você não as envie.
Você também pode já ter observado situações em que o seu próprio endereço de e-mail foi
indevidamente utilizado. Alguns indícios disto são:
» você recebe respostas de e-mails que você nunca enviou;
» você recebe e-mails aparentemente enviados por você mesmo, sem que você tenha
feito isto;
» você recebe mensagens de devolução de e-mails que você nunca enviou, reportando
erros como usuário desconhecido e caixa de entrada lotada (cota excedida).
PHISHING
6
Phishing é uma forma de fraude na internet na qual a vítima recebe um e-mail pedindo para ele
ou ela verificar ou confirmar uma conta junto a um banco ou provedor de serviços. Algumas vezes
mensagens instantâneas são usadas e até contatos telefônicos já foram tentados. É difícil capturar
os autores de phishing. Usuários de internet devem permanecer particularmente vigilantes e não
devem nunca responder a um pedido por e-mail para transferir dinheiro ou enviar informações
pessoais (financeiras), tais como números de conta de banco, códigos PIN ou detalhes do cartão
de crédito. Em computação, phishing é uma forma de Engenharia Social.
Em segurança da informação, chama-se Engenharia Social as práticas utilizadas para obter
acesso às informações importantes ou sigilosas em organizações ou sistemas por meio da engana-
ção ou exploração da confiança das pessoas. Para isso, o golpista pode se passar por outra pessoa,
assumir outra personalidade, fingir que é um profissional de determinada área etc. É uma forma
de entrar em organizações que não necessita da força bruta ou de erros em máquinas. Explora as
falhas de segurança das próprias pessoas que, quando não treinadas para esses ataques, podem
ser facilmente manipuladas.
SPEAR PHISHING
Spear phishing é um golpe proveniente de e-mail ou comunicação eletrônica, direcionado a
um indivíduo, organização ou empresa específicos.
PHARMING
Pharming é um tipo específico de phishing que envolve o redirecionamento da navegação do
usuário para sites falsos, por meio de alterações no serviço de DNS (Domain Name System).
Neste caso, quando tenta-se acessar um site legítimo, o navegador Web é redirecionado, de
forma transparente, para uma página falsa. Isso pode ocorrer:
» por meio do comprometimento do servidor de DNS do provedor utilizado;
» pela ação de códigos maliciosos projetados para alterar o comportamento do serviço
de DNS do computador;
» pela ação direta de um invasor, que venha a ter acesso as configurações do serviço
de DNS do computador ou modem de banda larga.
FERRAMENTAS DE
SEGURANÇA
2
FERRAMENTAS DE SEGURANÇA
ANTIVÍRUS
Os programas antimalware, muitas vezes chamados de programas antivírus, são ferramentas
desenvolvidas com o objetivo de detectar, identificar e remover códigos maliciosos do sistema.
MÉTODO DE DETECÇÃO
Os primeiros malwares usavam códigos relativamente simples e fáceis de detectar, e por isso
podiam ser identificados e removidos com pacotes de software antivírus relativamente simples. À
medida que a corrida armamentista contra o malware evoluiu, tanto o código de malware quanto
necessariamente os softwares antivírus ficaram cada vez mais complexos e sofisticados.
De acordo com a cartilha de segurança (cartilha.cert.br), os métodos de detecção mais comuns
são:
» Assinatura: a assinatura de um código malicioso corresponde a características espe-
cíficas nele contidas e que permitem que seja identificado unicamente. Um arquivo
de assinaturas corresponde ao conjunto de assinaturas definidas pelo fabricante
para os códigos maliciosos já detectados.
» Heurística: baseia-se nas estruturas, instruções e características que o código mali-
cioso possui.
» Comportamento: baseia-se no comportamento apresentado pelo código malicioso
quando executado.
FIREWALL
Um firewall é um dispositivo de segurança que monitora o tráfego de rede de entrada e saída,
permitindo que alguns pacotes passem e bloqueando outros de acordo com um conjunto definido
de regras de segurança, isto é, todo o tráfego de fora para dentro, e vice-versa, passa por um fire-
wall. Dessa forma, é possível isolar uma rede interna de uma organização da Internet em geral. Um
firewall pode ser um hardware, software ou ambos.
TIPOS DE FIREWALL
FILTRO DE PACOTE TRADICIONAL
Os filtros de pacotes tradicionais também são chamados de stateless firewall (firewall sem
estado). Esse tipo de firewall examina cada datagrama de forma isolada, determinando se deve
passar ou ficar baseado nas regras específicas definidas pelo administrador da rede. As decisões
de filtragem costumam ser baseadas em:
ͫ Endereço IP de origem e de destino
ͫ Porta TCP ou UDP de origem e de destino
ͫ Regras diferentes para datagramas que entram e saem da rede
FILTRO DE PACOTE COM CONTROLE DE ESTADO (STATEFUL INSPECTION)
Um firewall com inspeção de estado permite ou bloqueia tráfego de acordo com o estado, a
porta e o protocolo. Ele monitora toda atividade desde o momento em que uma conexão é aberta
até que ela seja fechada. As decisões de filtragem são tomadas de acordo com as regras definidas
pelo administrador e com o contexto, o que significa o uso de informações de conexões e pacotes
anteriores que pertencem à mesma conexão.
FIREWALL DE PROXY
Um firewall de proxy é um sistema de segurança de redes que protege uma rede filtrando
mensagens na camada de aplicação. Nesse caso, funciona como a passagem de uma rede para
outra de uma aplicação específica. Servidores proxy podem oferecer recursos adicionais, como
armazenamento em cache e segurança de conteúdo ao evitar conexões diretas de fora da rede.
No entanto, isso também pode afetar a capacidade de taxa de transferência e as aplicações que
eles podem comportar.
GERENCIAMENTO UNIFICADO DE AMEAÇAS (UTM)
O gerenciamento unificado de ameaças, normalmente abreviado como UTM (Unified Threat
Management), é um termo de segurança de informações que se refere a uma única solução de
segurança, e normalmente um único dispositivo, que oferece várias funções de segurança em um
único ponto da rede. Normalmente, um dispositivo de UTM inclui funções como: antivírus, antis-
pyware, antispam, firewall de rede, detecção e prevenção de invasões, filtragem de conteúdo e
prevenção de vazamentos.
IMPORTANTE
IDS - Sistema de detecção de intrusão: ferramenta (hardware ou software) para monitorar o tráfego da rede,
detectar e alertar sobre possíveis ataques e tentativas de acessos indevidos.
IPS - Sistema de prevenção de intrusão: ferramenta (hardware ou software) para monitorar o tráfego da
rede, detectar possíveis tentativas de acessos indevidos e ataques. Além de enviar um alerta ao administrador,
também pode derrubar pacotes maliciosos, bloquear o tráfego a partir da origem e redefinir a conexão.
Enquanto o IDS é considerada uma solução passiva, o IPS é uma solução ativa.
4
BACKUP
Em segurança da informação, backup é um processo que se refere a fazer cópias dos dados de
forma que essas cópias adicionais possam ser usadas para restaurar o original após um evento de
perdas de dados, isto é, significa ter dados importantes em um segundo local físico, como um disco
rígido externo, DVD/Blu-ray, pendrive, backup em nuvem etc. Depois de criar essa segunda cópia
de dados, se você excluir os dados originais no computador, não haverá mais um backup desses
dados, apenas uma única cópia novamente.
É crucial sempre ter uma boa solução de backup implementada, já que a disponibilidade
do sistema pode ser afetada pela falha de um dispositivo ou software. Nesse caso, dispositivos
de backup devem ser utilizados para substituir rapidamente os sistemas críticos. Além disso, nas
organizações, os funcionários devem ser qualificados e precisam estar disponíveis para realizarem
os ajustes necessários para restaurar o sistema.
A realização de backups pode ser feita com uso de programas integrados ao sistema opera-
cional ou com uso de aplicativos específicos instalados separadamente. Esse procedimento pode
ser realizado de forma manual ou automática.
As consequências da perda de informação dependem da idade da informação que pode ser
recuperada a partir do backup. É importante, portanto, considerar o intervalo em que os backup
são feitos. Outro ponto extremamente importante é que o backup deve ser testado regularmente.
BACKUP DE IMAGEM
Essa é uma maneira de fazer backup de um computador (arquivos, aplicativos e arquivos de
sistema) que permite armazenar a coleção inteira de dados disponíveis do computador, incluindo
arquivos de programa e sistema operacional, em um só arquivo (uma “imagem”) que pode ser
usado mais tarde para restaurar o computador exatamente da forma que era quando a imagem
foi feita originalmente.
Esse é um bom jeito de se recuperar de uma grande falha de hardware ou de reinstalar o sis-
tema operacional sem ter que perder muito tempo também reinstalando programas, restaurando
e-mails e arquivos.
BACKUP DE ARQUIVOS
Essa abordagem faz backup de dados comuns somente ao criar uma segunda cópia em um
segundo local, mas não faz backup de aplicativos ou outros arquivos de sistema. Os arquivos que
são armazenados em backup não são excluídos da mídia origem.
ARQUIVAMENTO
Esse é o processo através do qual você armazena arquivos em uma única mídia de armaze-
namento sem cópias secundárias. Normalmente esse procedimento é realizado quando o usuário
precisa liberar o máximo de espaço possível no disco original. Como esse método resulta em apenas
uma cópia dos seus dados, ele não pode ser considerado um backup.
A principal diferença entre um arquivamento e um backup é que em um backup os arquivos
são mantidos no disco original e no disco secundário. Por outro lado, os dados arquivados normal-
mente são excluídos da origem, como, por exemplo, da sua unidade de dados ou disco do sistema.
Ao arquivar dados, é comum usar um DVD, Blu-ray ou fita magnética como mídia de armazena-
mento, pois esses são métodos econômicos de armazenar uma grande quantidade de dados que
não precisam ser acessados por muito tempo.
BACKUP 3
VERIFICAÇÃO DE INTEGRIDADE
É possível detectar alterações em arquivos armazenados em uma mídia, com uso da função
HASH. Nesse caso, Hash é o resultado único e de tamanho fixo gerado quando uma função de
resumo (tipo de método criptográfico) é aplicada sobre uma informação.
Funciona assim: aplique a função hash sobre o arquivo original e, se necessário, aplique
novamente a função hash sobre o arquivo que representa uma cópia do original. Dessa forma, se
os dois hashes forem iguais então você pode concluir que o arquivo representa uma cópia fiel do
original, caso contrário, é uma indicação de que o arquivo esteja corrompido ou que foi modificado.
Exemplos de métodos de hash são: MD5 (128 bits), SHA-1 (160 bits), SHA-256 e SHA-512.
REGRA 3-2-1
A estratégia de backup, conhecida como “regra de backup 3-2-1”, pode ajudar a salvar seus
dados em caso de desastres, erros humanos ou ações de intrusos, como, por exemplo, ataques de
ransomwares, cada vez mais comuns. A regra afirma que você precisa:
Ter pelo menos 3 cópias dos dados (a original e 2 backups);
Armazenar as cópias em 2 tipos diferentes de mídias;
Pelo menos uma cópia de dados deve ser colocada fora do centro de dados primário ou do
escritório, evitando assim desastres como incêndio, inundações ou outras circunstâncias de força
maior. Com a nuvem temos soluções de armazenamento geo-redundantes mais baratas e eficientes.
BACKUP
2
BACKUP
ATRIBUTO ARQUIVO (FLAG ARQUIVE)
Para controlar se um determinado arquivo está com sua cópia de segurança desatualizada ou
não, os programas de backup utilizam um atributo dos arquivos chamado atributo arquivo (flag
arquive). Quando ele está marcado é indicativo de que o arquivo ou nunca foi copiado ou foi alte-
rado desde o último backup. Quando estiver desmarcado é sinal de que ele está com sua cópia de
segurança atualizada. O programa de backup desmarca automaticamente esse atributo ao final da
execução de uma cópia (dependendo do tipo de backup). Depois disso, qualquer alteração que você
promova neste arquivo o atributo voltará a ficar marcado, também automaticamente.
TIPOS DE BACKUP
BACKUP NORMAL (COMPLETO, TOTAL, GLOBAL OU FULL)
Tipo de backup que copia todos os arquivos selecionados e marca cada arquivo como tendo
sofrido backup (em outras palavras, o atributo de arquivamento é desmarcado). Com backups nor-
mais, você só precisa da cópia mais recente do backup para restaurar todos os arquivos.
BACKUP CÓPIA
Tipo de backup que copia todos os arquivos selecionados, mas não marca cada arquivo como
tendo sofrido backup (em outras palavras, o atributo de arquivamento não é desmarcado).
BACKUP INCREMENTAL
Tipo de backup que copia somente os arquivos criados ou alterados desde o último backup
normal ou incremental. Os arquivos que sofreram backup são marcados como tal (ou seja, o atributo
de arquivamento é desmarcado).
BACKUP DIFERENCIAL
Tipo de backup que copia arquivos criados ou alterados desde o último backup normal. Os
arquivos que sofreram backup não são marcados como tal (ou seja, o atributo de arquivamento
não é desmarcado).
BACKUP DIÁRIO
Tipo de backup que copia todos os arquivos selecionados que forem alterados no dia de exe-
cução do backup diário. Os arquivos que sofreram backup não são marcados como tal (ou seja, o
atributo de arquivamento não é desmarcado).
BACKUP 3
FORMAS DE REALIZAÇÃO
BACKUP QUENTE
O backup quente, também chamado de backup on-line ou backup dinâmico, é um backup
realizado enquanto o banco de dados está operacional e acessível aos usuários. A maior vantagem
do backup quente é a continuidade dos negócios, ou seja, quando um backup quente está sendo
processado, você pode continuar trabalhando normalmente, já que seu banco de dados ainda está
disponível.
BACKUP FRIO
O backup frio, geralmente conhecido como backup offline ou backup estático, é uma espécie
de serviço de backup que exige que todo o sistema de dados esteja completamente desligado.
Nenhum negócio pode ser feito durante o backup frio. Assim, geralmente é realizado no início ou
no final do dia para manter a continuidade dos negócios.
alfaconcursos.com.br
SUMÁRIO
CONCEITOS DE INTERNET, INTRANET E EXTRANET ........................................................................................... 2
INTERNET ....................................................................................................................................................... 2
O QUE É UM PROTOCOLO? ....................................................................................................................... 2
INTRANET....................................................................................................................................................... 2
CONTEÚDO WEB........................................................................................................................................ 2
EXTRANET ...................................................................................................................................................... 3
VPN (VIRTUAL PRIVATE NETWORK)............................................................................................................... 3
VPN É SEGURA? ......................................................................................................................................... 3
INTRANET
Intranet é um termo que se refere à implementação de tecnologias de Internet dentro de
uma organização corporativa. Portanto, a Intranet é uma rede privada, ou seja, seu acesso é
restrito a um grupo específico de usuários. Sendo assim, haverá um processo de autenticação
dos usuários para que o acesso seja liberado à Intranet. Normalmente, esse processo de
autenticação é realizado por meio de login e senha. O funcionamento da Intranet também é
baseado na família de protocolos TCP/IP.
CONTEÚDO WEB
Uma organização pode utilizar a Intranet web para melhorar a comunicação gerência-
empregado e fornecer informações relacionadas ao trabalho de modo fácil e rápido.
Normalmente, existe uma página inicial (home page) corporativa interna que serve
como um ponto de entrada para os funcionários na Intranet. A partir dessa página inicial,
existem links para áreas de interesse da empresa ou de grandes grupos de empregados,
incluindo recursos humanos, finanças e serviços de sistemas de informação. Outros links são
para áreas de interesse dos grupos de empregados, como vendas e manufatura. Esse acesso é
realizado por meio de navegadores web, como, por exemplo, o Internet Explorer e o Mozilla
Firefox.
EXTRANET
Um conceito semelhante ao da Intranet é a Extranet. Assim como a Intranet, a Extranet
utiliza protocolos e aplicações TCP/IP, especialmente a Web. O recurso distinto da Extranet é
que ela dá acesso a recursos corporativos a clientes externos, normalmente fornecedores e
clientes da organização. Esse acesso externo pode ser pela Internet ou por outras redes de
comunicação de dados.
Uma Extranet proporciona mais do que o simples acesso à Web para o público, que
praticamente todas as empresas agora oferecem. Em vez disso, a Extranet dá acesso mais
extenso a recursos corporativos, normalmente em um modelo que impõe uma política de
segurança. Assim como na Intranet, o modelo típico de operação para a Extranet é
cliente/servidor.
A Extranet permite o compartilhamento de informações entre empresas. Uma
observação importante com Extranets é a segurança. Como os recursos Web corporativos e os
recursos de banco de dados se tornam disponíveis para os de fora e são permitidas transações
contra esses recursos, aspectos de privacidade e autenticação precisam ser resolvidos. Esse
acesso geralmente é realizado por meio de uma VPN (Rede Privada Virtual).
SUMÁRIO
NOÇÕES SOBRE ENDEREÇAMENTO IP ............................................................................................................... 2
ENDEREÇAMENTO IP ..................................................................................................................................... 2
IPV4................................................................................................................................................................ 2
REPRESENTAÇÃO DOS ENDEREÇOS IPV4 .................................................................................................. 2
CLASSES DE ENDEREÇAMENTO IP ............................................................................................................. 2
ESGOTAMENTO DOS ENDEREÇOS IPV4 ..................................................................................................... 3
IPV6................................................................................................................................................................ 3
IPV4
No IPv4, cada endereço IP tem comprimento de 32 bits (equivalente a 4 bytes). Portanto,
há um total de 232 endereços IP possíveis, ou seja, um pouco mais de 4 bilhões de endereços
IP (4.294.967.296 endereços distintos). Na época de seu desenvolvimento, esta quantidade
era considerada suficiente para identificar todos os computadores na rede e suportar o
surgimento de novas sub-redes. No entanto, com o rápido crescimento da Internet, surgiu o
problema da escassez dos endereços IPv4, motivando a criação de uma nova geração do
protocolo IP. Assim, o IPv6 surgiu, com um espaço para endereçamento de 128 bits, podendo
obter 340.282.366.920.938.463.463.374.607.431.768.211.456 endereços (2128).
REPRESENTAÇÃO DOS ENDEREÇOS IPV4
Os 32 bits dos endereços IPv4 são divididos em quatro grupos de 8 bits cada, separados
por “.”, escritos em notação decimal. Nesse formato, cada um dos 4 bytes é escrito em decimal,
de 0 a 255. Por exemplo, o endereço IP 193.32.216.9. Nesse caso, o 193 é o número decimal
equivalente aos primeiros 8 bits do endereço; o 32 é o decimal equivalente ao segundo
conjunto de 8 bits do endereço e assim por diante.
O endereço IP 193.32.216.9, em notação binária, é: 11000001.00100000.11011000.00001001
CLASSES DE ENDEREÇAMENTO IP
Para facilitar a distribuição dos endereços IPv4, foram especificadas cinco classes de
endereço IP (TORRES, 2009), sendo três classes principais e mais duas complementares. São
elas:
Analisando as três principais classes (A, B e C), podemos verificar o seguinte:
Classe A: Seus endereços começam com números no intervalo de 1 a 126 no primeiro
octeto, em que o primeiro octeto (primeiros 8 bits N.H.H.H) de um endereço IP identifica a
rede e os restantes 3 octetos (24 bits) irão identificar um determinado host nessa rede.
Exemplo de um endereço Classe A – 120.2.1.0
Loopback: O endereço 127.0.0.1 é reservado para loopback (na prática, toda a rede, de
127.0.0.0 a 127.255.255.255).
Classe B: Seus endereços começam com números de 128 a 191 no primeiro octeto, em
que os dois primeiros octetos (16 bits N.N.H.H) de um endereço IP identificam a rede e os
restantes 2 octetos ( 16 bits) irão identificar um determinado host nessa rede.
Exemplo de um endereço Classe B – 152.13.4.0
Classe C: Seus endereços começam com valores no intervalo 192 a 223., em que os três
primeiros octetos (24 bits N.N.N.H) de um endereço IP identificam a rede e o restante octeto
(8 bits) irão identificar um determinado host nessa rede.
IPV6
A representação dos endereços IPv6, divide o endereço em oito grupos de 16 bits,
separando-os por “:”, escritos com dígitos hexadecimais (0-F). Por exemplo:
2001:0DB8:AD1F:25E2:CADE:CAFE:F0CA:84C1
Na representação de um endereço IPv6, é permitido utilizar tanto caracteres maiúsculos
quanto minúsculos.
Além disso, regras de abreviação podem ser aplicadas para facilitar a escrita de alguns
endereços muito extensos. É permitido omitir os zeros à esquerda de cada bloco de 16 bits,
além de substituir uma sequência longa de zeros por “::”.
Por exemplo, o endereço 2001:0DB8:0000:0000:130F:0000:0000:140B pode ser escrito
como 2001:DB8:0:0:130F::140B ou 2001:DB8::130F:0:0:140B. Neste exemplo é possível
observar que a abreviação do grupo de zeros só pode ser realizada uma única vez, caso
contrário poderá haver ambiguidades na representação do endereço. Se o endereço acima
fosse escrito como 2001:DB8::130F::140B, não seria possível determinar se ele corresponde a
2001:DB8:0:0:130F:0:0:140B, a 2001:DB8:0:0:0:130F:0:140B ou
2001:DB8:0:130F:0:0:0:140B. Esta abreviação pode ser feita também no fim ou no início do
endereço, como ocorre em 2001:DB8:0:54:0:0:0:0 que pode ser escrito da forma
2001:DB8:0:54::
SUMÁRIO
ARQUITETURA TCP/IP ........................................................................................................................................ 2
ARQUITETURAS DE PROTOCOLOS PADRONIZADAS ...................................................................................... 2
MODELO DE REFERÊNCIA OSI ........................................................................................................................ 2
CAMADA FÍSICA ......................................................................................................................................... 3
CAMADA DE ENLACE DE DADOS ............................................................................................................... 3
CAMADA DE REDE ..................................................................................................................................... 3
CAMADA DE TRANSPORTE ........................................................................................................................ 3
CAMADA DE SESSÃO.................................................................................................................................. 4
CAMADA DE APRESENTAÇÃO .................................................................................................................... 4
CAMADA DE APLICAÇÃO ........................................................................................................................... 4
ARQUITETURA TCP/IP .................................................................................................................................... 4
CAMADAS DO TCP/IP ................................................................................................................................. 5
ARQUITETURA TCP/IP
ARQUITETURAS DE PROTOCOLOS PADRONIZADAS
Quando se deseja a comunicação entre computadores de diferentes fabricantes, o
esforço de desenvolvimento de software pode ser um pesadelo. Os diferentes fornecedores
utilizam diversos formatos de dados e protocolos de troca de dados. Até mesmo dentro da
linha de produtos de um fornecedor, computadores de diferentes modelos podem se
comunicar de maneiras exclusivas.
A única alternativa é que os fornecedores de computadores adotem e implementem um
conjunto comum de convenções. Para que isso aconteça, são necessários padrões.
Duas arquiteturas de protocolos serviram como base para o desenvolvimento de
padrões de protocolos interoperáveis: o conjunto de protocolos TCP/IP e o modelo de
referência OSI.
O conjunto de protocolos TCP/IP é, de longe, a arquitetura interoperável mais utilizada.
Já o modelo de referência OSI, embora bem conhecido, nunca sobreviveu à sua promessa
inicial.
Os projetistas do modelo OSI consideraram que esse modelo e os protocolos
desenvolvidos dentro desse modelo viriam a dominar as comunicações de computador. Isso
não aconteceu. Em vez disso, a arquitetura TCP/IP veio a dominar. Existem vários motivos
para esse resultado, um deles é o fato de o modelo OSI ser desnecessariamente complexo, com
sete camadas para realizar o que o TCP/IP faz com menos camadas.
Porém, o modelo OSI, mesmo não sendo utilizado, é muito cobrado em provas de
concursos públicos, portanto, estudaremos de forma bem objetiva o seu funcionamento.
CAMADA FÍSICA
Essa camada trata da transmissão do fluxo de bits não estruturado pelo meio físico; lida
com características mecânicas, elétricas, funcionais e de procedimento para acessar o meio
físico.
CAMADA DE ENLACE DE DADOS
Oferece a transferência confiável de informações pelo enlace físico; envia blocos
(quadros) com sincronismo, controle de erro e controle de fluxo necessários.
CAMADA DE REDE
Opera basicamente com endereços de rede, que são globais por natureza, como o
endereço IP. Essa camada é a responsável pelo roteamento dos dados, ou seja, o
encaminhamento dos pacotes pela rede e é completamente independente do meio de
transmissão, garantindo assim o roteamento dos pacotes por redes heterogêneas.
CAMADA DE TRANSPORTE
A função básica da camada de transporte é aceitar dados da camada acima dela, dividi-
los em unidades menores, se for preciso, repassar essas unidades à camada de rede e garantir
que todos os fragmentos chegarão corretamente à outra extremidade, ou seja, é responsável
por realizar a troca de pacotes entre sistemas que estão se comunicando, sem se preocupar
com o roteamento, que é executado pela camada de rede.
CAMADA DE SESSÃO
Uma das principais funções da camada de sessão é sincronizar o diálogo, ou seja, a
recepção com a transmissão. Essa camada ainda tem a capacidade de recuperar conexões de
transporte sem perder a conexão de sessão.
CAMADA DE APRESENTAÇÃO
A função da camada de apresentação é traduzir formatos e sintaxes, para que possam
ser compreendidos pelos dois subsistemas que estão se comunicando. Outra função executada
nessa camada é a compressão e criptografia dos dados de forma transparente à camada de
aplicação.
CAMADA DE APLICAÇÃO
Essa camada disponibiliza às aplicações os meios para acessar o ambiente de
comunicação realizando, portanto, a interface entre o protocolo de comunicação e o aplicativo
utilizado na rede. Os serviços mais comuns incluem correio eletrônico, transferência de
arquivos e transferência de páginas de internet.
ARQUITETURA TCP/IP
TCP/IP é um resultado da pesquisa e desenvolvimento de protocolos realizados na rede
experimental de comutação de pacotes, ARPANET, patrocinada pela DARPA. É referenciada
como conjunto de protocolos TCP/IP. Esse conjunto de protocolos consiste em uma grande
coleção de protocolos que foram emitidos como padrões da Internet, pelo Internet Activities
Board (IAB).
CAMADAS DO TCP/IP
Não há um modelo de protocolo TCP/IP oficial, assim como no caso da OSI. Portanto, o
TCP/IP pode ser descrito com 4 ou 5 camadas.
Modelo organizado em 5 camadas:
Camada de Aplicação
Camada de Transporte
Camada de rede (internet)
Camada de Enlace (acesso à rede)
Camada Física
SUMÁRIO
PILHA DE PROTOCOLOS TCP/IP ......................................................................................................................... 2
MODELO DE CINCO CAMADAS ...................................................................................................................... 2
CAMADA FÍSICA ......................................................................................................................................... 2
CAMADA DE ENLACE ................................................................................................................................. 2
CAMADA DE REDE ..................................................................................................................................... 2
CAMADA DE TRANSPORTE ........................................................................................................................ 2
PROTOCOLO UDP....................................................................................................................................... 3
PROTOCOLO TCP ....................................................................................................................................... 3
CAMADA FÍSICA
A camada física especifica como transmitir os bits por diferentes tipos de mídia como
sinais elétricos ou sinais luminosos, por exemplo. Sendo assim, a camada física trata da
especificação das características do meio de transmissão, da natureza dos sinais, da taxa de
dados e de questões relacionadas.
CAMADA DE ENLACE
A camada de enlace trata de como enviar mensagens de tamanho definido entre
computadores diretamente conectados, com níveis de confiabilidade especificados. De acordo
com o funcionamento da hierarquia em camadas, a camada de rede depende dos serviços da
camada de enlace. Sendo assim, em cada nó, a camada de rede passa o pacote para a camada de
enlace, que o entrega, ao longo da rota, ao nó seguinte, no qual o pacote é passado da camada
de enlace para a de rede. Os pacotes de camada de enlace são denominados quadros. Ethernet
(802.3) e 802.11 (WI-FI) são exemplos de padrões da camada de enlace.
CAMADA DE REDE
A camada de rede da Internet é responsável pela movimentação, de uma máquina para
outra, de pacotes de camada de rede conhecidos como datagramas. A camada de rede realiza
a função de roteamento que consiste no transporte de datagramas entre redes e na decisão de
qual rota um datagrama deve seguir através da estrutura de rede para chegar ao destino. O
principal protocolo dessa camada é o protocolo IP (Internet Protocol).
CAMADA DE TRANSPORTE
A camada de transporte reúne os protocolos que realizam as funções de transporte de
dados fim a fim, ou seja, considerando apenas a origem e o destino da comunicação, sem se
preocupar com os elementos intermediários. Um pacote de camada de transporte será
denominado segmento.
Os protocolos de transporte são executados nos sistemas finais:
Lado emissor: quebra as mensagens da aplicação em segmentos e envia para a
camada de rede;
Lado receptor: remonta os segmentos em mensagens e passa para a camada de
aplicação.
Na camada de transporte encontramos os protocolos UDP (User Datagram Protocol) e
TCP (Transmission Control Protocol).
PROTOCOLO UDP
O protocolo UDP oferece um serviço não orientado à conexão. Portanto, cada datagrama
enviado pelo usuário é um datagrama UDP independente. Os datagramas de usuário não são
numerados. Além disso, ao contrário do TCP, não há estabelecimento de conexão e não há
finalização da conexão, ou seja, cada datagrama de usuário pode viajar por um caminho
diferente.
O UDP é um protocolo muito simples. Não há controle de fluxo. Sendo assim, o receptor
pode ficar sobrecarregado com as mensagens recebidas. Outra característica do UDP é o fato de
não existir um mecanismo de controle de erros fazendo com que o emissor fique sem saber se
o pacote foi perdido, por exemplo.
PROTOCOLO TCP
O protocolo TCP, ao contrário do UDP, é um protocolo orientado à conexão. Quando um
processo no local A quer enviar e receber dados de outro processo no local B, as três fases
seguintes ocorrem:
1. As duas camadas TCP estabelecem uma conexão lógica entre elas;
2. Os dados são trocados em ambas as direções;
3. A conexão é finalizada.
Perceba que essa é uma conexão lógica, não física. O segmento TCP é encapsulado em um
datagrama IP e pode ser enviado fora de ordem, perdido ou corrompido e depois reenviado.
Cada segmento pode ser encaminhado por um caminho diferente até chegar ao destino. Não há
uma conexão física.
CONEXÃO TCP
CONTROLE DE ERROS
O TCP fornece confiabilidade usando controle de erros, que inclui mecanismos para
detectar e reenviar segmentos corrompidos, reenviar segmentos perdidos, armazenar
segmentos fora de ordem até que os segmentos faltantes cheguem e detectar/descartar
segmentos duplicados. O controle de erros no TCP é conseguido por meio do uso de três
ferramentas: soma de verificação (checksum), confirmação e tempo-limite.
Note, no entanto, que os segmentos fora de ordem nunca são entregues ao processo da
camada de aplicação. O TCP garante que os dados sejam enviados ordenadamente para o
processo.
SUMÁRIO
PILHA DE PROTOCOLOS TCP/IP ......................................................................................................................... 2
TABELA COMPARATIVA ................................................................................................................................. 2
CAMADA DE APLICAÇÃO ............................................................................................................................... 2
HTTP (HYPERTEXT TRANSFER PROTOCOL) ................................................................................................ 2
HTTPS (HYPERTEXT TRANSFER PROTOCOL SECURE) ................................................................................. 3
FTP (FILE TRANSFER PROTOCOL) ............................................................................................................... 3
CAMADA DE APLICAÇÃO
A camada de aplicação é onde residem aplicações de rede e seus protocolos. Ela inclui
muitos protocolos, tais como o protocolo HTTP (que provê requisição e transferência de
documentos pela Web), o SMTP (que provê transferência de mensagens de correio eletrônico)
e o FTP (que provê a transferência de arquivos entre dois sistemas finais). Denominaremos
esse pacote de informação na camada de aplicação de mensagem.
SUMÁRIO
PILHA DE PROTOCOLOS TCP/IP ......................................................................................................................... 2
CAMADA DE APLICAÇÃO ............................................................................................................................... 2
TFTP (TRIVIAL FILE TRANSFER PROTOCOL) ................................................................................................ 2
TELNET ....................................................................................................................................................... 2
SSH (SECURE SHELL – ACESSO REMOTO SEGURO) .................................................................................... 2
POP3 (POST OFFICE PROTOCOL, VERSÃO 3) ............................................................................................. 2
IMAP (INTERNET MESSAGE ACCESS PROTOCOL) ...................................................................................... 3
ARQUITETURA DO SISTEMA DE E-MAIL..................................................................................................... 3
WEBMAIL (E-MAIL PELA WEB) ................................................................................................................... 3
SMTP (SIMPLE MAIL TRANSFER PROTOCOL) ............................................................................................. 4
SNMP (SIMPLE NETWORK MANAGEMENT PROTOCOL)............................................................................ 4
DNS (DOMAIN NAME SYSTEM).................................................................................................................. 4
TELNET
É um protocolo que oferece uma capacidade de logon remoto, que permite que um
usuário em um terminal ou computador pessoal efetue logon com um computador remoto e
funcione como se estivesse conectado a esse computador. O protocolo Telnet trabalha sobre o
TCP na porta 23.
O protocolo POP3 trabalha sobre o TCP na porta 110. No entanto, deve-se usar a porta
995 em conexões criptografadas via SSL (Secure Sockets Layer) ou TSL (Transport Layer
Security).
Sendo assim, quando um destinatário de um e-mail quer acessar uma mensagem em sua
caixa postal, o protocolo que será utilizado para transferir a mensagem do servidor para o
browser do usuário será o HTTP/HTTPS, ou seja, acessando e-mails via browsers os protocolos
POP3 e IMAP não serão utilizados pelo agente de usuário. E o SMTP será utilizado pelo browser
para enviar e-mails? Não. O envio da mensagem do browser para o servidor de correio será
realizado pelo HTTP/HTTPS. Contudo, os servidores continuarão trocando mensagens com
outros servidores por meio do protocolo SMTP.
O DNS trabalha tipicamente com o protocolo UDP na porta 53, no entanto, em casos
específicos, pode utilizar TCP na mesma porta (53).
Aplicação WEB
Você já parou para pensar o que acontece quando um usuário digita um endereço URL,
como, por exemplo, www.alfaconcursos.com.br no navegador?
Vamos lá:
A máquina do usuário executa o lado cliente da aplicação DNS. Sendo assim, o navegador
extrai o nome do hospedeiro, www.alfaconcursos.com.br, do URL e, em seguida, o cliente DNS
envia uma consulta contendo o nome do hospedeiro para um servidor DNS. Realizada a
consulta, o cliente DNS finalmente recebe uma resposta do servidor DNS, que inclui o endereço
IP correspondente ao nome de hospedeiro, permitindo assim que o navegador possa abrir uma
conexão com o servidor Web que hospeda a página desejada.
REDES DE COMPUTADORES������������������������������������������������������������������������������������ 3
TIPOS DE REDES��������������������������������������������������������������������������������������������������������������������������� 3
PAN (PERSONAL AREA NETWORK)�����������������������������������������������������������������������������������������������������������������������������������3
LAN (LOCAL AREA NETWORK)������������������������������������������������������������������������������������������������������������������������������������������3
WLAN (WIRELESS LOCAL AREA NETWORK)��������������������������������������������������������������������������������������������������������������������3
CAN (CAMPUS AREA NETWORK)��������������������������������������������������������������������������������������������������������������������������������������3
MAN (METROPOLITAN AREA NETWORK)��������������������������������������������������������������������������������������������������������������������������3
WAN (WIDE AREA NETWORK)�������������������������������������������������������������������������������������������������������������������������������������������4
MEIOS DE TRANSMISSÃO���������������������������������������������������������������������������������������������������������������� 4
CABO COAXIAL������������������������������������������������������������������������������������������������������������������������������������������������������������������4
REDES DE COMPUTADORES 3
REDES DE COMPUTADORES
Uma rede de computadores é formada por um conjunto de módulos processadores capazes
de trocar informações e compartilhar recursos interligados por um sistema de comunicação.
TIPOS DE REDES
Redes podem ser classificadas de diversas formas diferentes. Uma das mais cobradas em provas
é a classificação quanto à abrangência, ou seja, as redes podem ser classificadas de acordo com o
tamanho da área geográfica que elas abrangem. As classificações mais comuns são:
alugam as linhas de uma empresa de telecomunicações. Porém, em vez de alugar linhas de trans-
missão dedicadas, uma empresa pode conectar seus escritórios à Internet, através de uma técnica
chamada VPN (Virtual Private Network ou rede privada virtual). Essa técnica usa uma rede pública
para ligar dois pontos de uma rede privada fazendo uso de criptografia. Com isso, é possível reduzir
significativamente o custo da conexão, já que não há necessidade de se pagar um aluguel mensal
pela conexão entre as redes.
MEIOS DE TRANSMISSÃO
O objetivo da camada física é transmitir um fluxo bruto de bits de uma máquina para outra.
Vários meios físicos podem ser usados para realizar a transmissão real. Cada um tem seu próprio
nicho em termos de largura de banda, atraso, custo e facilidade de instalação e manutenção. Os
meios físicos são agrupados em meios guiados, como fios de cobre e fibras ópticas, e em meios não
guiados (no caso de transmissões sem fio). Vamos começar estudando os meios de transmissão
guiados.
CABO COAXIAL
O cabo coaxial foi um dos primeiros tipos de cabo usados em rede. Ele possui dois fios, sendo
um deles uma malha que envolve o cabo em toda a sua extensão. Essa malha funciona como uma
blindagem, oferecendo uma excelente proteção contra interferências eletromagnéticas.
TIPOS DE CABO COAXIAL
Em redes Ethernet, dois tipos de cabos coaxiais podem ser usados: cabo coaxial fino, também
chamado de 10Base2, e cabo coaxial grosso, também chamado 10Base5. A diferença física entre
esses dois cabos é, obviamente, a espessura do cabo. Por conta dessa diferença, o cabo coaxial
grosso é mais resistente a interferências eletromagnéticas e sofre menos com o problema da ate-
nuação. Com isso, seu comprimento máximo é maior.
CABO COAXIAL FINO (10BASE2)
O cabo coaxial fino é também conhecido por outros nomes, como 10Base2 ou thinnet, tem
taxa máxima de transmissão de 10 Mbps. Além disso, o seu comprimento máximo é de 185 metros
por segmento de rede e possui um limite de 30 máquinas conectadas por segmento de rede. É
possível a ligação de até cinco segmentos por rede (a interligação de segmentos é feita por meio
de um periférico chamado repetidor), fazendo com que uma rede usando esse tipo de cabo possa
ter até 925 metros de comprimento e 150 máquinas.
O tipo de conector utilizado pelo cabo coaxial fino é o BNC. Outra informação importante é
que esse cabo era utilizado tipicamente em redes Ethernet, usando uma topologia conhecida como
topologia barramento (linear).
CABO COAXIAL GROSSO (10BASE5)
O cabo coaxial grosso é também conhecido como thicknet. O seu comprimento máximo é
de 500 metros por segmento de rede, permitindo até 100 máquinas por segmento. É possível a
conexão de até cinco segmentos por rede (a interligação de segmentos é feita por um periférico
REDES DE COMPUTADORES 5
chamado repetidor), fazendo com que uma rede usando este tipo de cabo possa ter até 2,5 km e
500 máquinas.
Sua blindagem é dupla, ao contrário do cabo coaxial fino, que possui apenas uma blindagem. É
por esse motivo que esse tipo de cabo é grosso. Sua taxa de transmissão é de 10 Mbps. Por último,
é importante saber que esse cabo utiliza um conector chamado vampiro.
REDES DE
COMPUTADORES
SUMÁRIO
REDES DE COMPUTADORES������������������������������������������������������������������������������������ 3
PAR TRANÇADO���������������������������������������������������������������������������������������������������������������������������� 3
TIPOS...................................................................................................................................................O PAR TRANÇADO
É O TIPO DE CABO DE REDE MAIS USADO ATUALMENTE. EXISTEM BASICAMENTE DOIS TIPOS DE CABO PAR
TRANÇADO: SEM BLINDAGEM, TAMBÉM CHAMADO UTP (I), E COM BLINDAGEM, TAMBÉM CHAMADO STP (SHIELDED
TWISTED PAIR).�����������������������������������������������������������������������������������������������������������������������������������������������������������������3
UTP (UNSHIELDED TWISTED PAIR)����������������������������������������������������������������������������������������������������������������������������������3
STP (SHIELDED TWISTED PAIR)���������������������������������������������������������������������������������������������������������������������������������������3
REDES DE COMPUTADORES 3
REDES DE COMPUTADORES
PAR TRANÇADO
Um par trançado consiste em dois fios de cobre isolados, arrumados em um padrão espiral regu-
lar. Normalmente, diversos desses pares são reunidos em um cabo, envolvendo-os em uma manta
protetora. Nesse caso, os pares são trançados para resolver o problema da diafonia ou crosstalk.
O que é diafonia?
É a medida da interferência elétrica gerada em par trançado pelo sinal que está trafegando em um par trançado
adjacente dentro do mesmo cabo.
Cabos do tipo par trançado normalmente trazem quatro pares de fios. Em redes de 10 Mbps e
100 Mbps, apenas dois desses pares são usados, um para a transmissão de dados (TD) e outro para
a recepção de dados (RD). Como utilizam canais separados para a transmissão e para a recepção,
é possível utilizar a comunicação full-duplex com esse tipo de cabo. Em redes Gigabit Ethernet (1
Gbps) e 10 Gigabit Ethernet (10 Gbps) os quatro pares são usados simultaneamente de forma a
aumentar a taxa de transferência.
A nomenclatura dos cabos de par trançado quanto a sua blindagem tem a forma:
X/YTP
na qual:
X = blindagem geral sobre os pares
Y= blindagem individual de cada par
TP = par trançado (twisted pair)
Vamos estudar agora a parte referente à blindagem geral sobre os pares.
X/YTP
Neste caso, podemos citar as seguintes nomenclaturas:
F (Foil screened) para folha metálica.
EX: F/UTP
Blindagem geral
X/YTP
S (Braid screened) para malha metálica.
EX: S/UTP
Blindagem geral
X/YTP
SF para blindagem com folha e malha metálica.
EX: SF/UTP
REDES DE COMPUTADORES 5
Blindagem geral
X/YTP
U (Unshielded) para os que não possuem a blindagem geral.
EX: U/UTP
Blindagem individual
X/YTP
U (Unshielded) para os que não possuem blindagem individual.
EX: F/UTP
6
REDES DE COMPUTADORES������������������������������������������������������������������������������������ 3
CATEGORIAS DO CABO DE PAR TRANÇADO��������������������������������������������������������������������������������������� 3
CONECTORES�������������������������������������������������������������������������������������������������������������������������������� 3
RJ45����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3
CONECTOR TERA / GG45��������������������������������������������������������������������������������������������������������������������������������������������������4
FIBRA ÓPTICA������������������������������������������������������������������������������������������������������������������������������� 4
CLASSIFICAÇÃO����������������������������������������������������������������������������������������������������������������������������������������������������������������4
TIPOS���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5
CONECTORES��������������������������������������������������������������������������������������������������������������������������������������������������������������������5
REDES DE COMPUTADORES 3
REDES DE COMPUTADORES
CATEGORIAS DO CABO DE PAR TRANÇADO
Agora precisamos entender que os cabos de par trançado são divididos em categorias. Neste
caso, as categorias indicam a qualidade do cabo e a frequência máxima suportada por ele.
Cada categoria é composta por um conjunto de características técnicas e de normas de
fabricação.
CONECTORES
RJ45
4
FIBRA ÓPTICA
A fibra óptica transmite informações por meio de sinais luminosos, em vez de sinais elétricos.
Há duas grandes vantagens da fibra óptica em relação aos cabos tradicionais.
• Primeiro: Interferências eletromagnéticas não ocorrem no tráfego da luz, logo a fibra óptica
é totalmente imune a ruídos.
• Segundo: O sinal sofre menos o efeito da atenuação, logo conseguimos ter um cabo de fibra
óptica muito mais longo sem a necessidade de repetidores. A distância máxima de um segmento
do tipo de fibra óptica mais usado é de 2 km (compare com o limite de 185 metros do cabo coaxial
fino e com o limite de 100 metros do par trançado). Há fibras ópticas que permitem um segmento
maior, enquanto outros tipos de fibra óptica possuem um limite menor de distância.
AS FIBRAS ÓPTICAS POSSUEM TRÊS ELEMENTOS:
Núcleo: É o elemento que transmite a luz, podendo ser feito de vidro ou plástico. O material
mais usado em fibras para redes de computadores é o vidro, com diâmetros típicos de 9 μm, 50
μm, 62,5 μm ou 100 μm.
Revestimento: O revestimento envolve o núcleo, possuindo um índice de refração menor do
que o do núcleo para permitir o funcionamento da fibra.
Capa: A capa protege a fibra óptica, possuindo um diâmetro de 250 μm ou de 500 μm.
Dois outros elementos são adicionados quando a fibra óptica é alojada dentro de um cabo: fibras fortalecedo-
ras – que previnem a quebra da fibra óptica durante o seu manuseio e instalação – e o revestimento externo.
CLASSIFICAÇÃO
As fibras ópticas são classificadas de acordo com o diâmetro do núcleo e do revestimento, em
mícron. Assim, uma fibra óptica 50/125 significa que ela possui um núcleo com 50 μm de diâmetro
e um revestimento com 125 μm de diâmetro.
REDES DE COMPUTADORES 5
TIPOS
Existem dois tipos de fibras ópticas: modo múltiplo (MMF, Multiple Mode Fiber) e modo único
(SMF, Single Mode Fiber). Essa classificação diz respeito a como a luz é transmitida por intermédio
da fibra. As fibras de modo múltiplo são mais grossas do que as fibras de modo único.
Fibras de modo múltiplo são normalmente 50/125 ou 62,5/125, enquanto as fibras de modo
único são normalmente 9/125. Como efeito, a luz reflete mais de uma vez nas paredes da fibra
e, com isso, a mesma informação chega várias vezes ao destino, defasada da informação original.
MODO MÚLTIPLO
MODO ÚNICO
Em resumo, as fibras de modo múltiplo são usadas para conexões de curta distância (normal-
mente até 2 km), enquanto as fibras de modo único são usadas para conexões de longa distância
(dezenas de quilômetros).
CONECTORES
Além de existirem vários padrões diferentes para o uso de fibras ópticas em redes Ethernet,
existem diversos tipos de conectores que podem ser usados.
Conector ST Conector SC Conector MTRJ
6
REDES DE
COMPUTADORES
SUMÁRIO
REDES DE COMPUTADORES������������������������������������������������������������������������������������ 3
TOPOLOGIA����������������������������������������������������������������������������������������������������������������������������������� 3
TOPOLOGIA BARRAMENTO������������������������������������������������������������������������������������������������������������������������������������������������3
REDES DE COMPUTADORES 3
REDES DE COMPUTADORES
TOPOLOGIA
Uma topologia descreve a forma com que os computadores em uma rede local estão conec-
tados. Outro ponto importante é que a topologia pode ser física ou lógica. Sendo assim, podemos
definir topologia física como a aparência (layout) da rede, ou seja, como os dispositivos estão
conectados ao meio físico. Já a topologia lógica determina como os dados serão transmitidos por
intermédio da rede.
É importante destacar que não existe uma ligação entre a topologia física e a topologia lógica.
Portanto, é possível que uma mesma rede utilize um tipo de topologia física e outro tipo de topo-
logia lógica.
TOPOLOGIA BARRAMENTO
Neste tipo de topologia, todas as estações ficam diretamente conectadas em um cabo que é o
meio físico compartilhado, ou seja, como todos os computadores estão compartilhando o mesmo
cabo, fica bastante claro que nenhum computador pode usar o cabo enquanto uma comunicação
é efetuada. Uma transmissão de qualquer estação se propaga pela extensão do meio nas duas
direções, e pode ser recebida por todas as outras estações.
A grande desvantagem da topologia barramento que utiliza cabo coaxial é que, se o cabo partir,
todos os computadores deixam de ter acesso à rede. Normalmente não precisa ser um rompimento
visível: basta que o cabo apresente mau contato para a rede deixar de funcionar, por exemplo: mau
contato no conector tipo T.
A inclusão de novas estações no cabo era uma tarefa relativamente simples, bastava incluir
um conector do tipo T no cabo e inserir mais uma estação. Por fim, em cada ponta do barramento
existe um terminador, que absorve qualquer sinal, removendo-o do barramento.
IMPORTANTE: A topologia barramento também é conhecida como topologia linear. Portanto, pode aparecer na
sua prova: topologia barramento ou linear.
REDES DE
COMPUTADORES
SUMÁRIO
REDES DE COMPUTADORES������������������������������������������������������������������������������������ 3
TOPOLOGIA EM ESTRELA��������������������������������������������������������������������������������������������������������������� 3
HUB������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3
PLACA ADAPTADORA DE REDE����������������������������������������������������������������������������������������������������������������������������������������4
ENDEREÇO MAC����������������������������������������������������������������������������������������������������������������������������������������������������������������4
CSMA/CD���������������������������������������������������������������������������������������������������������������������������������������������������������������������������4
REDES DE COMPUTADORES 3
REDES DE COMPUTADORES
TOPOLOGIA EM ESTRELA
Na topologia estrela todos os computadores são conectados a um dispositivo central, que
pode ser um equipamento concentrador, chamado hub, ou um outro equipamento mais moderno,
conhecido como switch.
A grande vantagem da topologia em estrela é a sua flexibilidade. Como ela possui um periférico
concentrador, caso um dos cabos da rede (par trançado) se rompa, apenas a comunicação entre o
periférico concentrador e a máquina na qual o cabo estava conectado será interrompida – a rede
continuará funcionando perfeitamente, ao contrário do que ocorre na topologia barramento, que
utiliza cabo coaxial.
É importante destacar que, se a rede estiver usando um hub, fisicamente, a topologia é em
estrela, e cada computador tem seu próprio cabo interligado ao concentrador. Contudo, como o
hub é um equipamento que trabalha apenas por broadcast – isto é, quando um computador envia
um quadro na rede –, todos os computadores ligados ao hub recebem o mesmo quadro, logo,
podemos concluir que, embora fisicamente a rede seja em estrela, o seu funcionamento lógico é
em barramento. Sendo assim, apenas um computador pode transmitir por vez.
HUB
O hub é um equipamento que trabalha na camada física do modelo OSI. Ele pode ser classificado
como ativo ou passivo. Nesse caso, os hubs ativos são equipamentos que regeneram os sinais que
recebem de suas portas antes de enviá-los para todas as demais portas, e, portanto, necessitam de
alimentação elétrica, funcionando, assim, como repetidores. Já os hubs passivos não regeneram os
sinais, logo, não funcionam como repetidores. Outra característica dos hubs é que eles só operam
no modo half-duplex.
O que é o modo half-duplex?
Quando estudamos transmissão de dados, entendemos que existem três modos de transmis-
são: simplex, half-duplex e full-duplex.
ͫ Simplex: nesse modo de transmissão de dados, um dispositivo é o transmissor e o outro
é o receptor, sendo que esse papel não se inverte, isto é, o dispositivo A é sempre o
transmissor e o B é sempre o receptor, sendo que B não tem como transmitir informações
para o A. Podemos concluir que a transmissão de dados simplex é unidirecional.
4
ENDEREÇO MAC
Todo adaptador de rede tem um endereço de camada de enlace gravado em uma memória
presente na própria interface de rede. Um endereço de camada de enlace é também denominado
um endereço de LAN, um endereço físico ou um endereço MAC (media access control – controle
de acesso ao meio). Normalmente, as questões de prova utilizam a expressão endereço MAC.
O endereço MAC tem 6 bytes (48 bits) de comprimento. Estes endereços de 6 bytes são tipi-
camente expressos em notação hexadecimal, com cada byte do endereço expresso como um par
de números hexadecimais. Os endereços MAC são atribuídos às placas de rede pelos fabricantes.
ENDEREÇO MAC
80-2B-F9-23-F7-A9
Estrutura do Endereço MAC
Um endereço MAC no padrão ethernet é constituído por 6 bytes, como visto anteriormente,
sendo os 3 primeiros conhecidos como endereço OUI (organizationally unique identifier). Eles indi-
cam o fabricante (atribuído pelo IEEE), e os 3 últimos são controlados pelo fabricante, identificando
de forma exclusiva cada interface fabricada.
CSMA/CD
REDES DE COMPUTADORES 5
Quando os computadores estão interconectados com um hub, a LAN ethernet é uma verdadeira
LAN de broadcast – isto é, quando um adaptador transmite um quadro, todos os adaptadores na
LAN recebem o quadro. Sendo assim, a ethernet precisa de um protocolo de acesso múltiplo – ela
usa o famoso protocolo CSMA/CD (Carrier Sense Multiple Access with Collision Detection – Pro-
tocolo de acesso múltiplo com detecção de colisão).
Como o protocolo CSMA/CD funciona?
Para o CSMA/CD, um computador que deseja transmitir primeiro escuta o meio para determi-
nar se outra transmissão está em andamento (percepção da portadora – carrier sense). Se o meio
estiver ocioso, o computador pode transmitir.
Pode acontecer de dois ou mais computadores tentarem transmitir ao mesmo tempo. Se isso
acontecer, haverá uma colisão. O procedimento a seguir especifica o que um computador deverá
fazer se o meio estiver ocupado e o que ele deverá fazer se houver uma colisão:
Se o meio estiver ocioso, transmita; caso contrário, vá para a etapa 2.
Se o meio estiver ocupado, continue a escutar até que esteja ocioso, e depois transmita
imediatamente.
Se uma colisão for detectada durante a transmissão, transmita um rápido sinal de colisão para
garantir que todos os computadores saibam que houve uma colisão e, depois, pare de transmitir.
Depois de transmitir o sinal de colisão, espere por um tempo aleatório, conhecido como bac-
koff, em seguida, tente transmitir novamente (repita a partir da etapa 1).
REDES DE
COMPUTADORES
SUMÁRIO
REDES DE COMPUTADORES������������������������������������������������������������������������������������ 3
SWITCH LAYER 2 (CAMADA DOIS)��������������������������������������������������������������������������������������������������� 3
DOMÍNIOS DE COLISÃO�����������������������������������������������������������������������������������������������������������������������������������������������������4
DOMÍNIO DE BROADCAST�������������������������������������������������������������������������������������������������������������������������������������������������4
VIRTUAL LOCAL AREA NETWORK������������������������������������������������������������������������������������������������������������������������������������4
SWITCH LAYER 3 (CAMADA TRÊS)��������������������������������������������������������������������������������������������������� 5
REDES DE COMPUTADORES 3
REDES DE COMPUTADORES
SWITCH LAYER 2 (CAMADA DOIS)
É um equipamento de rede que trabalha na camada de enlace do modelo OSI (camada 2),
ou seja, trabalha analisando o endereço MAC dos adaptadores ligados à rede. Com isso, é possível
transmitir quadros de dados somente para a porta de destino do quadro, ao contrário do hub, no
qual os quadros são transmitidos simultaneamente para todas as suas portas, permitindo, assim,
melhorar o desempenho da rede.
Podemos concluir com base nessa imagem que os computadores estão interligados em uma
rede com topologia estrela. Neste caso, o equipamento central é um switch (comutador). Além disso,
é possível observar que na tabela de comutação do switch só consta o endereço MAC de quatro
equipamentos, porém, podemos observar que temos cinco equipamentos interligados ao switch,
logo, caso algum equipamento tente se comunicar com outro equipamento que ainda não conste
na tabela de comutação, o switch terá que realizar o processo de inundação de quadro.
DOMÍNIOS DE COLISÃO
O domínio de colisão é outro ponto que gera uma grande diferença entre o hub e o switch.
Neste caso, o hub só trabalha com um domínio de colisão, ou seja, todas as máquinas funcionam
como se estivessem conectadas a um mesmo cabo (barramento), disputando o seu uso e, portanto,
o desempenho da rede irá diminuir conforme ela for aumentando. Ao contrário do hub, cada porta
do switch corresponde a um domínio de colisão diferente.
DOMÍNIO DE BROADCAST
Não confunda domínio de colisão com domínio de broadcast. Precisamos entender que o
switch cria para cada porta um domínio de colisão diferente, mas o switch continua tendo apenas
um domínio de broadcast, ou seja, quando um quadro de broadcast é enviado para a rede, ele é
replicado em todas as portas do switch (menos na porta que está enviando o quadro para a rede).
Nesse caso, o switch não pode bloquear este tipo de mensagem, do contrário a rede não funciona.
Esse é outro caso em que o switch volta a operar de forma idêntica ao hub.
É possível ampliar a quantidade de portas de um switch conectando suas portas a outros
switches ou hubs. Neste caso, todas as portas de todos os equipamentos continuam pertencendo
a um mesmo domínio de broadcast − isto é, a uma mesma rede.
Em redes grandes, a presença de apenas um domínio de broadcast pode ser um problema,
pois as mensagens de broadcast podem estar deixando a rede lenta. É possível dividir uma rede
em mais de um domínio de broadcast, o que é feito usando-se a técnica de rede virtual (Virtual
Local Area Network ou VLAN).
REFERÊNCIAS
ROSS, Keith; KUROSE, James. Redes de Computadores e a Internet: Uma nova abordagem. São
Paulo: Pearson Addison Wesley.
TORRES, Gabriel. Redes de Computadores. Clube do Hardware. Disponível em: https://www.
clubedohardware.com.br/livro-redes-de-computadores.
TENENBAUM, Andrew S. Redes de computadores. São Paulo: Campus.
REDES DE
COMPUTADORES
SUMÁRIO
REDES DE COMPUTADORES������������������������������������������������������������������������������������ 3
TOPOLOGIA EM ANEL��������������������������������������������������������������������������������������������������������������������� 3
TOPOLOGIA FÍSICA EM ESTRELA COM TOPOLOGIA LÓGICA EM ANEL����������������������������������������������������������������������������3
INSTITUTO DE ENGENHEIROS ELETRICISTAS E ELETRÔNICOS (IEEE)���������������������������������������������������������������������������4
ARQUITETURA IEEE 802.3������������������������������������������������������������������������������������������������������������������������������������������������4
REDES DE COMPUTADORES 3
REDES DE COMPUTADORES
TOPOLOGIA EM ANEL
A arquitetura Token Ring (ou topologia em anel) foi criada pela IBM para concorrer com a
arquitetura Ethernet e foi padronizada pelo IEEE em seu padrão 802.5. Essa arquitetura adota a
topologia em anel. Nesse caso, os computadores estão conectados em um caminho fechado, ou
seja, consiste em ligações ponto a ponto entre pares de dispositivos que, no seu conjunto, formam
um circuito fechado.
O funcionamento da topologia em anel é baseado no conceito de passagem de ficha, ou seja,
dentro desse anel, circula um quadro chamado token. Nesse caso, cada computador só pode enviar
um quadro de dados para a rede quando o token (ficha) passa pela máquina e quando ele estiver
livre. Dessa forma, podemos afirmar que na topologia em anel não existe o processo de colisão. O
token circula na rede sempre na mesma direção.
Podemos concluir que o processo de transmissão é simples. Quando um computador precisa
enviar um quadro, ele aguarda o token chegar. Quando este chega, o computador deve ainda
verificar se ele está livre ou transportando dados. Se o token estiver livre, o computador muda o
status do token para ocupado e envia junto dele a mensagem desejada, com o endereço MAC da
estação de destino.
Por padrão, quando um computador recebe o token e verifica que a mensagem enviada é
para ele, o computador lê a mensagem e muda o status do token como mensagem lida. A partir
daí, quando a mensagem retornar ao computador que a enviou, como o status do token aparece
como lido, o computador retira a mensagem do anel e altera o status do token para livre, liberando
outros computadores para transmitir.
Como já foi dito, nesse tipo de topologia não existem colisões e a performance da rede depende
de alguns fatores, como o tráfego gerado pelos computadores, a quantidade de máquinas no anel
e a velocidade de transmissão. Redes Token Ring normalmente operam a 4 Mbps ou a 16 Mbps.
REDES DE COMPUTADORES������������������������������������������������������������������������������������ 3
WI-FI������������������������������������������������������������������������������������������������������������������������������������������� 3
IEEE 802.11����������������������������������������������������������������������������������������������������������������������������������� 3
EVOLUÇÃO DOS PADRÕES 802.11�������������������������������������������������������������������������������������������������������������������������������������3
IDENTIFICAÇÃO DA TECNOLOGIA DE DISPOSITIVOS WI-FI���������������������������������������������������������������������������������������������3
CRIPTOGRAFIA������������������������������������������������������������������������������������������������������������������������������ 4
REDES DE COMPUTADORES 3
REDES DE COMPUTADORES
WI-FI
Wi-Fi tornou-se sinônimo de conectividade sem fio. Mas, apesar das infinitas especulações, o
próprio termo não tem sentido. Não é uma abreviação ou um padrão.
Wi-Fi é um nome de marca criado pela empresa de marketing Interbrand para o membro
fundador da Wireless Ethernet Compatibility Alliance (agora chamada Wi-Fi Alliance). O nome foi
criado para uso como selo de interoperabilidade e com finalidade de marketing.
A maneira mais comum de os usuários se conectarem sem fio à Internet é com um roteador
sem fio (Wi-Fi). Normalmente, esses roteadores parecem pequenas caixas com várias antenas para
ajudar a transmitir o sinal por toda a casa ou pelo escritório.
Quanto mais distante o usuário estiver do roteador Wi-Fi, mais fraco será o sinal. Portanto,
geralmente existem vários roteadores sem fio colocados em todo o ambiente de trabalho para
permitir uma cobertura mais abrangente da Internet. O roteador sem fio combina as funções de
rede de um Access Point sem fio e de um roteador.
IEEE 802.11
Do ponto de vista técnico, o padrão IEEE 802.11 define os protocolos que permitem a comu-
nicação com os dispositivos sem fio atuais habilitados por Wi-Fi, incluindo roteadores e Access
points sem fio.
Cada padrão é uma emenda ratificada ao longo do tempo. Os padrões operam em frequências
variadas, oferecem largura de banda distinta e suportam diferentes quantidades de canais.
802.11ax, são conhecidos como dispositivos Wi-Fi 6. A maioria dos dispositivos enviados hoje, com
base no padrão 802.11ac, são identificados como Wi-Fi 5.
Os dispositivos Wi-Fi também podem usar um ícone de interface de usuário (UI) no display para
identificar a geração de uma conexão de rede. Os ícones exibirão um indicador de sinal Wi-Fi e uma
representação numérica da conexão. Os ícones se ajustarão à medida que os usuários se movem
entre redes Wi-Fi que fornecem uma experiência de usuário diferente. Quando um dispositivo de
usuário exibe um ícone indicador de sinal acompanhado do número 6, indicando uma conexão Wi-Fi
6, esse dispositivo está utilizando a versão mais avançada do Wi-Fi disponível.
CRIPTOGRAFIA
Criptografia de LAN sem fio é usada para proteger sua rede sem fio com um protocolo de
autenticação que exige uma senha ou chave de rede quando um usuário ou dispositivo tenta se
conectar. Se sua rede sem fio não está protegida com algum tipo de criptografia, usuários não
autorizados podem acessar sua rede e obter informações pessoais ou usar sua conexão à Internet
para atividades mal-intencionadas. Além disso, sua velocidade de rede ou o desempenho pode
diminuir se as pessoas estão usando sua rede sem o seu conhecimento.
Os principais protocolos criptográficos que podem ser usados em redes Wi-Fi são os seguintes:
ͫ WEP (Wired Equivalent Privacy): não deve ser usado, por conta de sérias falhas de
segurança.
ͫ WPA (Wi-Fi Protected Access): não deve ser usado, pois é um protocolo cuja segurança
também já foi quebrada.
ͫ WPA2 (Wi-Fi Protected Access 2): só deve ser usado caso o ponto de acesso e os com-
putadores não tenham WPA3.
ͫ WPA3 (Wi-Fi Protected Access 3): fornece um método muito mais seguro e confiável e
foi criado para substituir o WPA2 e os protocolos de segurança mais antigos.
REFERÊNCIAS
ROSS, Keith e KUROSE, JAMES. Redes de Computadores e a Internet: Uma nova abordagem,
Ed. Addison Wesley.
TORRES, Gabriel. Redes de Computadores, Ed. Nova Terra.
TENENBAUM, Andrew. S.. Redes de computadores, Ed. Campus.
SISTEMA DE
NUMERAÇÃO
SUMÁRIO
SISTEMA DE NUMERAÇÃO������������������������������������������������������������������������������������� 3
BINÁRIO��������������������������������������������������������������������������������������������������������������������������������������� 3
CONVERSÃO ENTRE BASES NUMÉRICAS�������������������������������������������������������������������������������������������������������������������������3
CONVERSÃO DE DECIMAL PARA BINÁRIO������������������������������������������������������������������������������������������������������������������������3
CONVERSÃO DE BINÁRIO PARA DECIMAL������������������������������������������������������������������������������������������������������������������������4
CONVERSÃO DE DECIMAL PARA HEXADECIMAL�������������������������������������������������������������������������������������������������������������4
CONVERSÃO DE HEXADECIMAL EM DECIMAL�����������������������������������������������������������������������������������������������������������������4
SISTEMA DE NUMERAÇÃO 3
SISTEMA DE NUMERAÇÃO
BINÁRIO
De forma geral, binário é um sistema que utiliza apenas dois valores para representar suas
quantias. É um sistema de base dois. Esses dois valores são o “0” e o “1”. Daí podemos concluir que
para 0 temos desligado, sem sinal, e para 1 temos ligado ou com sinal.
Vale ressaltar que o sistema que utilizamos diariamente é o sistema de base dez, chamado
base decimal. Esse sistema utiliza os algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, e 9.
Nos computadores, esses zeros e uns são chamados dígitos binários ou somente bit (conjunção
de duas palavras da língua inglesa binary digit), que é a menor unidade de informação dos compu-
tadores. Dessa forma, tanto faz dizer dígito “0” e dígito “1”, ou, bit “0” e bit “1”.
Note que os caracteres que definem os dígitos hexadecimais A, B e C foram substituídos pelos
valores equivalentes em decimais 10, 11 e 12 de acordo com a tabela a seguir.
HEXADECIMAL DECIMAL
A 10
B 11
C 12
D 13
E 14
F 15
MÁSCARA DE
SUB-REDE
SUMÁRIO
MÁSCARA DE SUB-REDE��������������������������������������������������������������������������������������� 3
MÁSCARA DE SUB-REDE 3
MÁSCARA DE SUB-REDE
Um endereço IPV4 é um número de 32 bits. Ele identifica exclusivamente um host (computador
ou outro dispositivo, como uma impressora ou roteador) em uma rede TCP/IP.
Os endereços IP normalmente são expressos em formato decimal pontilhado, com quatro
números separados por pontos, como, por exemplo, 192.168.0.132. Nesse caso, o endereço IPV4
tem duas partes. A primeira parte de um endereço IP é usada como um endereço de rede, a última
parte como um endereço host.
Para definir qual parte do endereço IP irá identificar a rede e qual parte do endereço IP irá
identificar o host, é necessário a configuração de uma máscara de sub-rede.
Vejamos o exemplo a seguir:
No exemplo anterior, os primeiros 16 bits (o número de uns na máscara de sub-rede) são identifi-
cados como o endereço de rede. Os últimos 16 bits (o número de zeros restantes na máscara de
sub-rede) são identificados como o endereço host.
Por último, teríamos:
MÁSCARA DE SUB-REDE��������������������������������������������������������������������������������������� 3
CLASSES DE ENDEREÇAMENTO IP����������������������������������������������������������������������������������������������������������������������������������3
MÁSCARA DE SUB-REDE PADRÃO��������������������������������������������������������������������������������������������������� 3
ENDEREÇOS IP PÚBLICOS × ENDEREÇOS IP PRIVADOS���������������������������������������������������������������������� 4
NAT (NETWORK ADDRESS TRANSLATION)����������������������������������������������������������������������������������������������������������������������4
MÁSCARA DE SUB-REDE 3
MÁSCARA DE SUB-REDE
CLASSES DE ENDEREÇAMENTO IP
Para facilitar a distribuição dos endereços IPv4, foram especificadas cinco classes de endereço
IP (TORRES, 2009), sendo que três dessas classes (A, B e C) podem ser utilizadas como endereços
de host.
Analisando as três principais classes (A, B e C), podemos verificar o seguinte:
ͫ classe A: Seus endereços começam com números no intervalo de 1 a 126 no primeiro
octeto, em que o primeiro octeto (8 bits) de um endereço IP identifica a rede e os restantes
3 octetos (24 bits) irão identificar um determinado host nessa rede. Exemplo de um
endereço Classe A: 120.2.1.0
IMPORTANTE
Loopback: O endereço 127.0.0.1 é reservado para loopback (na prática, toda a rede, de 127.0.0.0 a 127.255.255.255).
ͫ classe B: Seus endereços começam com números de 128 a 191 no primeiro octeto, em
que os dois primeiros octetos (16 bits) de um endereço IP identificam a rede e os restantes
2 octetos (16 bits) irão identificar um determinado host nessa rede. Exemplo de um
endereço Classe B: 152.13.4.0
ͫ classe C: Seus endereços começam com valores no intervalo 192 a 223, em que os três
primeiros octetos (24 bits) de um endereço IP identificam a rede e o restante octeto (8
bits) irá identificar um determinado host nessa rede. Exemplo de um endereço Classe
C – 192.168.10.0
Classe Endereços
A 10.0.0.0 a 10.255.255.255
B 172.16.0.0 a 172.31.255.255
C 192.168.0.0 a 192.168.255.255
MÁSCARA DE SUB-REDE��������������������������������������������������������������������������������������� 3
MÁSCARAS DE TAMANHO VARIÁVEL (VLSM)������������������������������������������������������������������������������������� 3
MÁSCARA DE SUB-REDE 3
MÁSCARA DE SUB-REDE
MÁSCARAS DE TAMANHO VARIÁVEL (VLSM)
Até agora vimos apenas máscaras de sub-rede padrão. Porém o recurso mais refinado das
máscaras de sub-rede é quebrar um octeto do endereço IP em duas partes, fazendo com que
tenhamos, dentro de um mesmo octeto, uma parte que represente a rede e outra que represente
o host. Chegamos às máscaras de tamanho variável (VLSM – Variable Length Subnet Mask).
Esse recurso é um pouco complicado, mas, em compensação, pouca gente sabe usá-lo, por
isso vale a pena fazer um certo esforço para aprender.
Configurando uma máscara complexa, precisaremos configurar o endereço IP usando números
binários e não decimais.
Vamos lá:
Veja que 0 e 255 são exatamente os números que usamos nas máscaras de sub-rede padrão. O
número decimal 255 (equivalente a 11111111) indica que todos os 8 números binários do octeto se
referem à rede, enquanto o decimal 0 (correspondente a 00000000) indica que todos os 8 binários
do octeto se referem ao host. Numa rede com máscara 255.255.255.0, temos:
Usando uma máscara 255.255.255.0, são reservados todos os 8 bits para o endereçamento dos
hosts, e não sobra nada para diferenciar as duas redes. Usando uma máscara complexa, é possível
“quebrar” os 8 bits do octeto em duas partes, usando a primeira para diferenciar as duas redes e
a segunda para endereçar os hosts.
Para tanto, em vez de usar a máscara de sub-rede 255.255.255.0 que, como vimos, reser-
varia todos os 8 bits do último octeto para o endereçamento do host, usaremos uma máscara
255.255.255.128 (corresponde ao binário 11111111.111111.11111111.10000000). Veja que em uma
máscara de sub-rede, os números binários “1” referem-se à rede e os números “0” referem-se ao
host. Na máscara 255.255.255.128 temos exatamente esta divisão: o primeiro bit do último octeto
é igual a 1 e os sete últimos bits são iguais a 0.
4
ENDEREÇO DE ENDEREÇOS DE
SUB-REDE ENDEREÇO SUB-REDE
BROADCAST HOST
192.168.0.1 a
1 192.168.0.0 192.168.0.127
192.168.0.126
192.168.0.129 a
2 192.168.0.128 192.168.0.255
192.168.0.254
Exemplo 2
Na máscara 255.255.255.192 temos exatamente esta divisão: os dois primeiros bits do último
octeto são iguais a 1 e os seis últimos bits são iguais a 0.
MÁSCARA DE SUB-REDE 5
Para finalizar nosso exemplo, vamos utilizar o endereço de rede: 192.168.0.0 com a máscara:
255.255.255.192 (/26 - NOTAÇÃO CIDR).
ͫ Número de sub-redes: para calcular o número de sub-redes, vamos utilizar a fórmula:
2n, onde o “n” é o número de bits iguais a um (1) no último octeto. Sendo assim, fica: 22
= 4 sub-redes.
ͫ Número de hosts em cada sub-rede: para calcular o número de hosts, vamos utilizar a
fórmula: 2n-2, onde o “n” é o número de bits iguais a zero no último octeto. Sendo assim,
fica: 26-2 = 62 hosts.
ͫ FAIXA DE ENDEREÇOS EM CADA SUB-REDE
ENDEREÇO DE ENDEREÇOS DE
SUB-REDE ENDEREÇO SUB-REDE
BROADCAST HOST
192.168.0.1 a
1 192.168.0.0 192.168.0.63
192.168.0.62
192.168.0.65 a
2 192.168.0.64 192.168.0.127
192.168.0.126
192.168.0.129 a
3 192.168.0.128 192.168.0.191
192.168.0.190
192.168.0.193 a
4 192.168.0.192 192.168.0.255
192.168.0.254
Exemplo 3
Na máscara 255.255.255.224 temos exatamente esta divisão: os três primeiros bits do último
octeto são iguais a 1 e os cinco últimos bits são iguais a 0.
Para finalizar nosso exemplo, vamos utilizar o endereço de rede: 192.168.0.0 com a máscara:
255.255.255.224 (/27 - NOTAÇÃO CIDR).
ͫ Número de sub-redes: para calcular o número de sub-redes, vamos utilizar a fórmula:
2n, onde o n é o número de bits iguais a um no último octeto. Sendo assim, temos: 23 =
8 sub-redes.
ͫ Número de hosts em cada sub-rede: para calcular o número de hosts, vamos utilizar a
fórmula: 2n - 2, onde o n é o número de bits iguais a zero no último octeto. Sendo assim,
fica: 25 - 2 = 30 hosts.
ͫ FAIXA DE ENDEREÇOS EM CADA SUB-REDE
6
ENDEREÇO DE ENDEREÇOS DE
SUB-REDE ENDEREÇO SUB-REDE
BROADCAST HOST
192.168.0.1 a
1 192.168.0.0 192.168.0.31
192.168.0.30
192.168.0.33 a
2 192.168.0.32 192.168.0.63
192.168.0.62
192.168.0.65 a
3 192.168.0.64 192.168.0.95
192.168.0.94
192.168.0.97 a
4 192.168.0.96 192.168.0.127
192.168.0.126
192.168.0.129 a
5 192.168.0.128 192.168.0.159
192.168.0.158
192.168.0.161 a
6 192.168.0.160 192.168.0.191
192.168.0.190
192.168.0.193 a
7 192.168.0.192 192.168.0.223
192.168.0.222
192.168.0.225 a
8 192.168.0.224 192.168.0.255
192.168.0.254
Exemplo 4
Na máscara 255.255.255.240 temos exatamente esta divisão: os quatro primeiros bits do
último octeto são iguais a 1 e os quatro últimos bits são iguais a 0.
Para finalizar nosso exemplo, vamos utilizar o endereço de rede: 192.168.0.0 com a máscara:
255.255.255.240 (/28 – NOTAÇÃO CIDR).
ͫ Número de sub-redes: para calcular o número de sub-redes, vamos utilizar a fórmula:
2n, onde o n é o número de bits iguais a um no último octeto. Sendo assim, fica: 24 = 16
sub-redes.
ͫ Número de hosts em cada sub-rede: para calcular o número de hosts, vamos utilizar a
fórmula: 2n-2, onde o n é o número de bits iguais a zero no último octeto. Sendo assim,
fica: 24 - 2 = 14 hosts.
MÁSCARA DE SUB-REDE 7
ENDEREÇO DE ENDEREÇOS DE
SUB-REDE ENDEREÇO SUB-REDE
BROADCAST HOST
192.168.0.1 a
1 192.168.0.0 192.168.0.15
192.168.0.14
192.168.0.17 a
2 192.168.0.16 192.168.0.31
192.168.0.30
192.168.0.33 a
3 192.168.0.32 192.168.0.47
192.168.0.46
192.168.0.49 a
4 192.168.0.48 192.168.0.63
192.168.0.62
192.168.0.65 a
5 192.168.0.64 192.168.0.79
192.168.0.78
192.168.0.81 a
6 192.168.0.80 192.168.0.95
192.168.0.94
192.168.0.97 a
7 192.168.0.96 192.168.0.111
192.168.0.110
192.168.0.113 a
8 192.168.0.112 192.168.0.127
192.168.0.126
192.168.0.129 a
9 192.168.0.128 192.168.0.143
192.168.0.142
192.168.0.145 a
10 192.168.0.144 192.168.0.159
192.168.0.158
192.168.0.161 a
11 192.168.0.160 192.168.0.175
192.168.0.174
192.168.0.177 a
12 192.168.0.176 192.168.0.191
192.168.0.190
192.168.0.193 a
13 192.168.0.192 192.168.0.207
192.168.0.206
192.168.0.209 a
14 192.168.0.208 192.168.0.223
192.168.0.222
192.168.0.225 a
15 192.168.0.224 192.168.0.239
192.168.0.238
192.168.0.241 a
16 192.168.0.240 192.168.0.255
192.168.0.254
COMPUTAÇÃO EM NUVEM
DEFINIÇÃO
A computação em nuvem é a entrega de recursos de TI sob demanda por meio da Internet com
definição de preço de pagamento conforme o uso. Em vez de comprar, ter e manter datacenters
e servidores físicos, você pode acessar serviços de tecnologia, como capacidade computacional,
armazenamento e bancos de dados, conforme a necessidade, usando um provedor de nuvem,
como, por exemplo, Amazon Web Services (AWS) e Microsoft Azure.
Conceituar computação em nuvem ainda é uma tarefa árdua. São muitas definições e termos
técnicos associados. Procurei aqui trazer as definições mais aceitas:
ͫ “Computação em nuvem é um modelo para permitir acesso ubíquo, conveniente e sob
demanda há um conjunto compartilhado de recursos de computação configuráveis (por
exemplo, redes, servidores, equipamentos de armazenamento, aplicações e serviços), que
podem ser rapidamente alocados e liberados com o mínimo de esforço de gerenciamento
ou interação com prestador de serviço”. NIST.
ͫ “Computação em nuvem é um estilo de computação no qual recursos de TI massiva-
mente escaláveis são disponibilizados sobre a forma de prestação de serviços, por meio
da internet, para múltiplos consumidores externos”. GARTNER.
ͫ “Computação em nuvem é uma plataforma que dinamicamente provê, configura, reconfig-
ura e libera servidores de acordo com a necessidades e que entrega grandes data centers
e potentes servidores nos quais hospeda aplicações e serviços para serem utilizados via
internet”. IBM.
ͫ “Nuvem é um termo utilizado para descrever uma rede global de servidores, cada um com
uma função única. A nuvem não é uma entidade física, mas uma vasta rede de servidores
remotos ao redor do globo que são conectados e operam como um único ecossistema.
Estes servidores são responsáveis por armazenar e gerenciar dados, executar aplicativos
ou fornecer conteúdos ou serviços, como transmissão de vídeos, webmail, software de
produtividade ou mídias sociais. Em vez de acessar arquivos e dados do local ou de um
PC, você pode acessá-los online, de qualquer dispositivo com acesso à Internet. As infor-
mações estarão disponíveis em qualquer lugar, a qualquer hora.” MICROSOFT.
Resumindo, a computação em nuvem é o fornecimento de serviços de computação, incluindo
servidores, armazenamento, bancos de dados, rede, software, análise e inteligência, pela Internet
(“a nuvem”) para oferecer inovações mais rápidas, recursos flexíveis e economias de escala. Você
normalmente paga apenas pelos serviços de nuvem que usa, ajudando a reduzir os custos opera-
cionais, a executar sua infraestrutura com mais eficiência e a escalonar conforme as necessidades
da sua empresa mudam.
NIST: Instituto Nacional de Padrões e Tecnologia do Departamento de Comércio Norte-americano .
COMPUTAÇÃO EM NUVEM
RECURSOS DE COMPUTAÇÃO
MÁQUINA VIRTUAL (VM)
Uma máquina virtual, normalmente reduzida apenas para VM (Virtual Machine), não é diferente
de qualquer outro computador físico, como um laptop, um smartphone ou um servidor. Ela tem
CPU, memória, discos para armazenar seus arquivos e pode se conectar à Internet, se necessário.
Embora as partes que compõem o seu computador (chamadas de hardware) sejam físicas e tangí-
veis, as VMs costumam ser consideradas como computadores virtuais ou computadores definidos
por software em servidores físicos, existindo apenas como código.
Virtualização é o processo de criação de uma versão baseada em software ou “virtual” de um
computador, com quantidades dedicadas de CPU, memória e armazenamento que são “empresta-
das” de um computador host físico – como o seu computador pessoal – e/ou um servidor remoto
– como um servidor no datacenter de um provedor de nuvem.
Uma máquina virtual é um arquivo de computador (normalmente chamado de imagem) que
se comporta como um computador de verdade. Ela pode ser executada em uma janela como um
ambiente computacional separado, geralmente para executar um sistema operacional diferente –
ou até mesmo para funcionar como a experiência completa do computador do usuário – como é
comum nos computadores de trabalho de muitas pessoas.
Embora as máquinas virtuais sejam executadas como computadores individuais com siste-
mas operacionais e aplicativos individuais, elas têm a vantagem de permanecer completamente
independentes umas das outras e do computador host físico. Um software chamado Hipervisor, ou
Virtual Machine Manager, permite que você execute sistemas operacionais diferentes em máquinas
virtuais diferentes ao mesmo tempo. Isso torna possível executar VMs do Linux, por exemplo, em
um sistema operacional Windows, ou executar uma versão anterior do Windows em um sistema
operacional Windows mais atual.
O QUE É HIPERVISOR?
Diversas máquinas virtuais podem ser executadas simultaneamente no mesmo computador
físico, todas gerenciadas por um hipervisor. Um hipervisor é o software que integra o hardware
físico e o hardware virtual da VM. Com isso, o hipervisor garante que cada VM obtenha os recursos
necessários do servidor físico de maneira ordenada e oportuna.
Como as VMs são independentes umas das outras, elas também são extremamente portáteis.
Você pode mover uma VM de um hipervisor para outro hipervisor em um computador completa-
mente diferente quase instantaneamente.
Devido à sua flexibilidade e portabilidade, as máquinas virtuais oferecem muitos benefícios,
como:
Economia de custos: a execução de vários ambientes virtuais por meio de uma única infraestru-
tura significa que você pode reduzir drasticamente o volume ocupado pela infraestrutura física. Isso
aumenta seus resultados, diminuindo a necessidade de manter tantos servidores e economizando
em custos de manutenção e eletricidade.
COMPUTAÇÃO EM NUVEM 3
Agilidade e velocidade: ativar uma VM é relativamente fácil e rápido, e muito mais simples do
que provisionar um ambiente totalmente novo para seus desenvolvedores. A virtualização torna o
processo de execução de cenários de desenvolvimento e teste muito mais rápido.
Tempo de inatividade reduzido: as VMs são muito portáteis e fáceis de passar de um hipervisor
para outro em um computador diferente, o que significa que são uma ótima solução para backup,
caso o host fique inativo inesperadamente.
Escalabilidade: as VMs permitem que você escale seus aplicativos mais facilmente, adicio-
nando mais servidores físicos ou virtuais para distribuir a carga de trabalho entre várias VMs. Como
resultado, você pode aumentar a disponibilidade e o desempenho de seus aplicativos.
Benefícios de segurança: como as máquinas virtuais são executadas em vários sistemas ope-
racionais, o uso de um sistema operacional convidado em uma VM permite que você execute
aplicativos de segurança questionável, protegendo o sistema operacional do host. As VMs também
permitem melhor análise forense de segurança e costumam ser usadas para estudar vírus de com-
putador de maneira segura, isolando-os para evitar o risco de seu computador host.
A máquina virtual é particionada do restante do sistema, o que significa que o software dentro
de uma VM não pode interferir no sistema operacional primário do computador host.
Com a nuvem, você pode ter uma VM pronta para uso em minutos com um custo menor do
que o de um computador físico.
Máquina virtual (VM) não é a única opção de computação – há duas outras opções populares:
contêineres e computação sem servidor.
CONTÊINER
Ao considerar a virtualização, normalmente as pessoas pensam nas VMs (máquinas virtuais).
Na verdade, a virtualização pode assumir muitas formas, e os contêineres são uma delas.
Então, qual é a diferença entre VMs e contêineres?
Ao contrário de um contêiner, uma máquina virtual (VM) executa um sistema operacional
completo, incluindo seu próprio kernel.
Os contêineres fornecem um ambiente leve e isolado que torna os aplicativos mais fáceis de
desenvolver, implantar e gerenciar. Os contêineres iniciam e param rapidamente, tornando-os ideais
para aplicativos que precisam se adaptar rapidamente a demandas que se alteram. A natureza leve
dos contêineres também os torna uma ferramenta útil para aumentar a densidade e a utilização
de sua infraestrutura.
Eles compartilham um sistema operacional instalado no servidor e são executados como
processos isolados de recursos. Isso permite fazer implantações rápidas, confiáveis e consistentes,
independentemente do ambiente.
Essa arquitetura não funciona para todos os aplicativos, mas quando a lógica do aplicativo
pode ser separada em unidades independentes, você pode testá-las e atualizá-las separadamente
e iniciá-las em microssegundos, o que faz dessa abordagem a opção mais rápida para implantação.
REFERÊNCIAS
https://azure.microsoft.com/pt-br/overview/what-is-a-virtual-machine/#what-benefits
https://docs.microsoft.com/pt-br/virtualization/windowscontainers/about/
https://azure.microsoft.com/pt-br/overview/what-is-a-container/#why-containers
COMPUTAÇÃO EM
NUVEM
2
COMPUTAÇÃO EM NUVEM
MODELOS DE IMPLANTAÇÃO EM NUVEM
Uma forma de classificar a nuvem pode ser feita com base na sua implantação. A nuvem pode
ser implementada e utilizada de maneiras diferentes, dependendo das necessidades de uso e de
negócio. Considerando as formas de implantação, existem quatro categorias distintas, de acordo
com o NIST: nuvem pública, nuvem privada, nuvem comunitária e nuvem híbrida.
NUVEM PÚBLICA
Esse é o modelo de implantação mais comum. Os recursos de nuvem (como servidores e
armazenamento) pertencem a um provedor de serviço de nuvem terceirizado, são operados por
ele e entregues pela Internet. Com uma nuvem pública, todo o hardware, software e outras infraes-
truturas de suporte são de propriedade e gerenciadas pelo provedor de nuvem. Em uma nuvem
pública, você compartilha os mesmos dispositivos de hardware, de armazenamento e de rede com
outras organizações ou “locatários” da nuvem. Você acessa serviços e gerencia sua conta usando
um navegador da Web. As implantações de nuvem pública geralmente são usadas para fornecer
e-mail baseado na Web, aplicativos de escritório online, armazenamento e ambientes de desen-
volvimento e teste.
NUVEM PRIVADA
A infraestrutura de nuvem privada está disponível para uso exclusivo por uma única organi-
zação. Sua utilização, gerenciamento e operação podem ser feitos pela própria organização, por
terceiros ou por uma combinação dos dois. Ela pode estar localizada em suas dependências ou fora.
No entanto, o cliente terá controle sobre sua localização geográfica, o que torna atrativa para dados
ou sistemas com restrições de acesso ou que são de missão crítica. A nuvem privada, portanto, tem
sua elasticidade reduzida. A economia de custos associadas também é menor que a de uma nuvem
pública, mas pode mitigar alguns riscos de segurança.
NUVEM HÍBRIDA
A infraestrutura de nuvem é uma composição de duas ou mais infraestruturas de nuvem
(privada, comunitária ou pública), interligadas por tecnologias padronizadas ou proprietárias que
permitem portabilidade de aplicações e de dados entre as nuvens.
Essa opção permite que alguns aplicativos e dados da organização sejam executados na própria
infraestrutura privada e outros sejam executados na nuvem pública.
Esse modelo pode ser usado de várias formas. Primeiro, ele pode ser usado como uma abor-
dagem de migração para fazer a transição de seus aplicativos e serviços do datacenter privado para
a nuvem pública de forma mais gradual.
A nuvem híbrida também pode ser utilizada para segmentar o trabalho, ou seja, podemos
conectar os dois ambientes com uma rede segura e privada para trocar dados. Dessa forma, parte
dos dados é processada em sua infraestrutura local e privada, e a outra parte é processada na
nuvem pública.
Por fim, a nuvem híbrida pode ser usada para a intermitência de nuvem. Portanto, é possível
empurrar o trabalho para a nuvem pública quando o datacenter interno atingir o limite máximo de
carga de trabalho. Dessa forma, podemos dimensionar e deixar as cargas de trabalho intermitentes
COMPUTAÇÃO EM NUVEM 3
para aproveitar a nuvem pública e quando a carga de trabalho voltar ao normal, retornar aos
recursos internos.
NUVEM COMUNITÁRIA
A infraestrutura de nuvem comunitária está disponível para uso exclusivo de uma comunidade
específica formada por organizações que possuem interesses e preocupações em comum (por
exemplo: requisitos de segurança e conformidade). A sua propriedade, gerenciamento e operação
podem ser de uma ou mais organizações da comunidade, de terceiros ou de uma combinação mista,
e pode estar dentro ou fora das instalações das organizações participantes.
COMPUTAÇÃO EM NUVEM
TIPOS DE COMPUTAÇÃO EM NUVEM
Uma possível classificação para a computação em nuvem se baseia no conceito de arquitetura
em camadas hierárquicas, onde os serviços da camada superior são providos pela camada inferior
subsequente.
O NIST define 3 principais categorias de camadas a saber:
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. INTRODUÇÃO......................................................................................................................................... 2
1.1 PROPRIEDADES IMPLÍCITAS: ................................................................................................................ 2
2. SISTEMA GERENCIADOR DE BANCO DE DADOS (SGBD) ........................................................................ 3
2.1 O que é SGBD? ..................................................................................................................................... 3
2.1.1 Definir ............................................................................................................................................... 3
2.1.2 CONSTRUIR ....................................................................................................................................... 3
2.1.3 MANIPULAR ...................................................................................................................................... 3
2.1.4 COMPARTILHAR ................................................................................................................................ 3
BANCO DE DADOS
1. INTRODUÇÃO
O termo banco de dados (do original database) é tão recorrente e amplo que é necessário
começar a nossa aula por ele. Sendo assim, as principais definições são:
Conjunto de dados integrados que tem por objetivo atender a uma comunidade de
usuários;
Um banco de dados é uma coleção de dados inter-relacionados, representando
informações sobre um domínio específico;
Um banco de dados é uma coleção de dados relacionados.
Os dados são fatos que podem ser gravados e que possuem um significado implícito. Por
exemplo, considere nomes, números telefônicos e endereços de pessoas que você conhece.
Esses dados podem ter sido escritos em uma agenda de telefones ou armazenados em um
computador, por meio de programas como o Microsoft Access ou Excel. Essas informações são
uma coleção de dados com um significado implícito, consequentemente, um banco de dados.
Um banco de dados é uma coleção lógica e coerente de dados com algum significado
inerente, ou seja, uma organização de dados ao acaso (randômica) não pode ser
corretamente interpretada como um banco de dados.
Em outras palavras, um banco de dados possui algumas fontes das quais os dados são
derivados, alguns níveis de interação com os eventos do mundo real e um público efetivamente
interessado em seus conteúdos. Além disso, podemos destacar outras características
importantes:
2.1.1 DEFINIR
Definir um banco de dados envolve especificar os tipos, estruturas e restrições dos dados
a serem armazenados. A definição ou informação descritiva do banco de dados também é
armazenada pelo SGBD na forma de um catálogo ou dicionário, chamado de metadados.
2.1.2 CONSTRUIR
2.1.3 MANIPULAR
A manipulação inclui algumas funções, como consulta ao banco de dados para recuperar
um dado específico, atualização do banco para refletir as mudanças no minimundo e geração
de relatórios com base nos dados.
2.1.4 COMPARTILHAR
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
SILBERSCHATZ. Sistema de Banco de Dados. 5 Ed. Campus, 2006
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. SISTEMA DE BANCO DE DADOS ............................................................................................................. 2
2. USUÁRIOS DE BANCO DE DADOS .......................................................................................................... 3
2.1 ADMINISTRADORES DE BANCO DE DADOS ......................................................................................... 3
2.2 PROJETISTAS DE BANCO DE DADOS .................................................................................................... 3
2.3 USUÁRIOS FINAIS ................................................................................................................................. 3
2.4 ANALISTAS DE SISTEMAS E PROGRAMAÇÕES DE APLICAÇÕES (ENGENHEIROS DE SOFTWARE)........ 4
3. ARQUITETURA DE TRÊS ESQUEMAS (ANSI/SPARC) ................................................................................... 5
3.1 INDEPENDÊNCIA DE DADOS ................................................................................................................ 6
BANCO DE DADOS
1. SISTEMA DE BANCO DE DADOS
Um conjunto formado por um banco de dados, um SGBD e as aplicações que o manipulam,
é chamado de sistema de banco de dados.
Referências
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. MODELAGEM DE DADOS ....................................................................................................................... 2
1.1 MODELO CONCEITUAL......................................................................................................................... 2
1.2 MODELO LÓGICO ................................................................................................................................. 2
1.3 MODELO FÍSICO ................................................................................................................................... 3
2. SQL (STRUCTURED QUERY LANGUAGE) ................................................................................................ 3
2.1 LINGUAGEM DE DEFINIÇÃO DE DADOS (DDL) ..................................................................................... 3
2.2 LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML) ............................................................................. 4
DCL (DATA CONTROL LANGUAGE – LINGUAGEM DE CONTROLE DE DADOS) .......................................... 4
DTL (DATA TRANSACTION LANGUAGE – LINGUAGEM DE CONTROLE DE TRANSAÇÕES) ......................... 4
BANCO DE DADOS
1. MODELAGEM DE DADOS
Uma característica fundamental da abordagem de banco de dados é que ela oferece algum
nível de abstração. A abstração de dados, geralmente, se refere à supressão de detalhes da
organização e armazenamento dos dados, destacando recursos essenciais para um melhor
conhecimento desses dados.
Um modelo de dados é uma coleção de conceitos que podem ser usados para descrever
a estrutura de um banco de dados.
Nesse contexto, o modelo de dados pode ser de alto nível ou de baixo nível. Sendo assim
os modelos de dados são classificados em:
Modelo conceitual
Modelo lógico
Modelo Físico
Modelos de dados de alto nível ou conceituais oferecem conceitos que são próximos ao
modo como muitos usuários percebem os dados, ou seja, descreve a estrutura de um banco de
dados de forma independente de um SGBD específico.
Modelo em Rede: é constituído de vários registros conectados uns aos outros por
meio de ligações (ponteiros). As ligações consistem em relações entre os registros,
esse modelo oferece maior segurança do que o modelo hierárquico uma vez que o
acesso não passa por um nó raiz.
Modelo Relacional: o modelo relacional foi introduzido por Edgar Frank Codd em
1970. Representa os dados em um banco de dados como uma coleção de relações
(tabelas). Sua teoria baseia-se na teoria dos conjuntos e álgebra relacional.
DDL
DML
DCL
DTL
ALTER TABLE – esse comando permite alterar a estrutura de uma tabela já definida.
Pode-se adicionar uma coluna à tabela, modificar ou excluir uma coluna existente,
ou renomear a tabela.
DROP TABLE – esse comando permite excluir uma tabela do banco de dados.
OBSERVAÇÃO:
Algumas literaturas colocam o SELECT como integrante do subconjunto DQL
(Data Query Language – Linguagem de Consulta de Dados).
RESUMO DEPENDÊNCIA
Modelo de dados Modelo SGBD SGBD Específico
Modelo Conceitual NÃO NÃO
Modelo Lógico SIM NÃO
Modelo Físico SIM SIM
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ALVES, W. P. Fundamentos de Bancos de Dados. Érica, 2004
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
GILLENSON. M. L. Fundamentos de Sistemas de Gerencia de Banco de Dados. LTC, 2006.
SILBERSCHATZ. Sistema de Banco de Dados. 5 Ed. Campus, 2006
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. MODELO ENTIDADE-RELACIONAMENTO .............................................................................................. 2
1.1 COMPONENTES DO DIAGRAMA ER (PETER CHEN):............................................................................. 2
2. ENTIDADES............................................................................................................................................. 3
2.1 TIPOS DE ENTIDADES ........................................................................................................................... 3
BANCO DE DADOS
1. MODELO ENTIDADE-RELACIONAMENTO
O modelo entidade-relacionamento, também conhecido pela sigla MER, é um padrão de
modelagem conceitual com base em objetos criado por Peter Chen em 1976. Esse modelo
trabalha com entidades, atributos e relacionamentos. Nesse caso, os componentes do modelo
entidade-relacionamento são representados graficamente por um Diagrama de Entidade-
Relacionamento, conhecido como DER.
Representação de atributo
2. ENTIDADES
Entre as conceituações técnicas das diversas áreas da ciência, temos o termo “Entidade”.
Segundo a área de Tecnologia da Informação (CHEN, 1976, p.10) : Uma entidade é uma “coisa”
que pode ser distintamente identificada.
Nesse contexto, exemplificamos com uma entidade livro, carro e pessoa como entidade
concreta, mas podemos encontrar entidades abstratas como disciplina, curso e empréstimo.
Mesmo com essa classificação, a representação continua sendo a mesma.
Uma entidade é capaz de armazenar dados de diversas instâncias daquela entidade. Por
exemplo, a entidade aluno pode armazenar dados de muitos alunos, ou seja, registrar dados de
diversas instâncias. Portanto, uma instância é um indivíduo ilustrativo de uma categoria.
Entidade Forte: a entidade forte é a mais comum de ser encontrada. Essa entidade
existe independentemente de qualquer outra entidade. Por ser a mais comum,
normalmente a denominamos apenas entidade.
Entidade Fraca: ao contrário das entidades fortes, as fracas são aquelas que
dependem de outras entidades para existirem, pois individualmente elas não fazem
sentido. Por exemplo, a entidade dependente só existirá se houver instâncias de
Quanto à notação gráfica, temos o retângulo para identificar a entidade forte, o retângulo
com outro retângulo menor em seu interior para identificar a entidade fraca e o retângulo com
um losango em seu interior para indicar a entidade associativa.
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ALVES, W. P. Fundamentos de Bancos de Dados. Érica, 2004
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
GILLENSON. M. L. Fundamentos de Sistemas de Gerencia de Banco de Dados. LTC, 2006.
SILBERSCHATZ. Sistema de Banco de Dados. 5 Ed. Campus, 2006
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. MODELO ENTIDADE-RELACIONAMENTO .............................................................................................. 2
1.1 TIPOS DE ATRIBUTOS ........................................................................................................................... 2
1.1.1 ATRIBUTO-CHAVE ............................................................................................................................. 2
1.1.2 ATRIBUTO SIMPLES........................................................................................................................... 3
1.1.3 ATRIBUTO COMPOSTO ..................................................................................................................... 3
1.1.4 ATRIBUTO MULTIVALORADO ........................................................................................................... 3
1.1.5 ATRIBUTO DERIVADO ....................................................................................................................... 3
1.1.6 ATRIBUTOS EM RELACIONAMENTOS ............................................................................................... 4
1.1.7 VALORES NULOS DE ATRIBUTOS ...................................................................................................... 4
BANCO DE DADOS
1. MODELO ENTIDADE-RELACIONAMENTO
1.1.1 ATRIBUTO-CHAVE
Dentre os atributos de uma entidade, devemos indicar um atributo identificador, que é
comumente chamado de atributo-chave. Esse atributo identificará cada instância dentro da
entidade. Por exemplo, na entidade Veículo, o atributo cor indica a cor do veículo. Sendo assim,
a instância do veículo de chassi de número 10112 apresenta o texto “Azul” para o atributo cor;
a instância do veículo de chassi de número 12456 apresenta o texto “Vermelho” para o atributo
cor; a instância do veículo de chassi de número 13290 apresenta o texto “branco” para o
atributo cor.
Ex: Endereço
Ex: Apartamento = null para aquelas pessoas que não residem em um prédio.
Além disso, o valor null pode ser aplicado também para denotar que o valor é
desconhecido.
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
SILBERSCHATZ. Sistema de Banco de Dados. 5 Ed. Campus, 2006
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. GENERALIZAÇÃO/ESPECIALIZAÇÃO ....................................................................................................... 2
2. RELACIONAMENTOS .............................................................................................................................. 2
2.1 GRAU DE RELACIONAMENTO .............................................................................................................. 3
2.1.1 RELACIONAMENTO UNÁRIO (AUTORRELACIONAMENTO)............................................................... 3
2.1.2 RELACIONAMENTO BINÁRIO ............................................................................................................ 3
2.1.3 RELACIONAMENTO TERNÁRIO ......................................................................................................... 4
BANCO DE DADOS
1. GENERALIZAÇÃO/ESPECIALIZAÇÃO
Existem muitos casos práticos em que um conjunto de entidades representa elementos
do mundo real que se subdividem em entidades especializadas com atributos parcialmente
distintos.
Total: quando para cada ocorrência da entidade genérica existe sempre uma
ocorrência em uma das entidades especializadas.
Parcial: quando há ocorrências na entidade genérica sem correspondência nas
entidades especializadas.
2. RELACIONAMENTOS
No MER, não é permitido ligar uma entidade diretamente à outra, ou seja, quando há uma
associação, ela é representada por um relacionamento. O relacionamento no diagrama
entidade-relacionamento é apresentado na forma de um losango e, para a associação entre
entidades, deve-se seguir a notação básica, que são entidades ligadas ao relacionamento por
linhas retas, como mostra a figura a seguir.
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ALVES, W. P. Fundamentos de Bancos de Dados. Érica, 2004
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
GILLENSON. M. L. Fundamentos de Sistemas de Gerencia de Banco de Dados. LTC, 2006.
SILBERSCHATZ. Sistema de Banco de Dados. 5 Ed. Campus, 2006
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. RESTRIÇÕES SOBRE TIPOS DE RELACIONAMENTOS .............................................................................. 2
1.1 RAZÕES DE CARDINALIDADE PARA RELACIONAMENTOS BINÁRIOS (CARDINALIDADE MÁXIMA)...... 2
1.1.1 UM PARA UM (1:1) ........................................................................................................................... 2
1.1.2 UM PARA MUITOS (1:N) ................................................................................................................... 2
1.1.3 MUITOS PARA UM (N:1) ................................................................................................................... 3
1.1.4 MUITOS PARA MUITOS (N:N) ........................................................................................................... 3
BANCO DE DADOS
1. RESTRIÇÕES SOBRE TIPOS DE RELACIONAMENTOS
Esse relacionamento indica que uma instância de uma entidade só pode estar relacionada
a no máximo a uma instância de outra entidade e vice-versa. Por exemplo, um professor só
pode ministrar uma única disciplina, enquanto a disciplina só pode ser ministrada por um único
professor.
Em um relacionamento um para muitos (1:N), uma instância de uma entidade pode estar
relacionada a múltiplas instâncias da outra entidade, mas a recíproca não é verdadeira. Por
exemplo, no caso do relacionamento entre professor e disciplina, pode ocorrer de um professor
ministrar várias disciplinas, mas cada disciplina ser ministrada somente por um professor.
Podemos encontrar a situação inversa, em que a disciplina pode ser ministrada por mais
de um professor, mas, por sua vez, o professor leciona somente uma disciplina.
E seguimos para o último caso, em que a cardinalidade é de muitos para muitos. Assim,
temos que um professor ministra mais de uma disciplina e uma disciplina pode ser ministrada
por mais de um professor.
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ALVES, W. P. Fundamentos de Bancos de Dados. Érica, 2004
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
GILLENSON. M. L. Fundamentos de Sistemas de Gerencia de Banco de Dados. LTC, 2006.
SILBERSCHATZ. Sistema de Banco de Dados. 5 Ed. Campus, 2006
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. RESTRIÇÕES DE PARTICIPAÇÃO E DEPENDÊNCIAS DE EXISTÊNCIA (CARDINALIDADE MÍNIMA)........... 2
1.1 NOTAÇÃO (MIN, MAX)......................................................................................................................... 2
1.1.2 CARDINALIDADE 1:1 ......................................................................................................................... 2
BANCO DE DADOS
1. RESTRIÇÕES DE PARTICIPAÇÃO E DEPENDÊNCIAS DE
EXISTÊNCIA (CARDINALIDADE MÍNIMA)
Exemplo 2
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ALVES, W. P. Fundamentos de Bancos de Dados. Érica, 2004
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
GILLENSON. M. L. Fundamentos de Sistemas de Gerencia de Banco de Dados. LTC, 2006.
SILBERSCHATZ. Sistema de Banco de Dados. 5 Ed. Campus, 2006
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. RESTRIÇÕES DE PARTICIPAÇÃO E DEPENDÊNCIA DE EXISTÊNCIA (CARDINALIDADE MÍNIMA) ............ 2
1.1 NOTAÇÃO (MIN, MAX)......................................................................................................................... 2
1.1.2 CARDINALIDADE 1:1 ......................................................................................................................... 2
1.1.3 CARDINALIDADE 1:N ......................................................................................................................... 3
BANCO DE DADOS
1. RESTRIÇÕES DE PARTICIPAÇÃO E DEPENDÊNCIA DE
EXISTÊNCIA (CARDINALIDADE MÍNIMA)
Exemplo 2
Exemplo 1
Exemplo 2
Exemplo 3
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ALVES, W. P. Fundamentos de Bancos de Dados. Érica, 2004
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
GILLENSON. M. L. Fundamentos de Sistemas de Gerencia de Banco de Dados. LTC, 2006.
SILBERSCHATZ. Sistema de Banco de Dados. 5 Ed. Campus, 2006
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. RESTRIÇÕES DE PARTICIPAÇÃO E DEPENDÊNCIA DE EXISTÊNCIA (CARDINALIDADE MÍNIMA) ............ 2
1.1 NOTAÇÃO (MIN, MAX)......................................................................................................................... 2
1.1.2 CARDINALIDADE N:N ........................................................................................................................ 2
2. OUTRAS NOTAÇÕES ............................................................................................................................... 3
2.1 ENGENHARIA DA INFORMAÇÃO (PÉ-DE-GALINHA) ....................................................................... 3
BANCO DE DADOS
1. RESTRIÇÕES DE PARTICIPAÇÃO E DEPENDÊNCIA DE
EXISTÊNCIA (CARDINALIDADE MÍNIMA)
Exemplo 1
Entidade professor (Cardinalidade mínima 0, Cardinalidade máxima N)
Exemplo 2
Exemplo 3
2. OUTRAS NOTAÇÕES
Esses símbolos são usados em pares para representar os quatro tipos de cardinalidade
que uma entidade pode ter em uma relação. O elemento interno da notação representa o
mínimo, e o elemento externo (mais próximo da entidade) representa o máximo.
Descrição Símbolo
EXEMPLO
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ALVES, W. P. Fundamentos de Bancos de Dados. Érica, 2004
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
GILLENSON. M. L. Fundamentos de Sistemas de Gerencia de Banco de Dados. LTC, 2006.
SILBERSCHATZ. Sistema de Banco de Dados. 5 Ed. Campus, 2006
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. AUTORRELACIONAMENTO .................................................................................................................... 2
1.1 CARDINALIDADE 1:1 ...................................................................................................................... 2
1.2 CARDINALIDADE 1:N ............................................................................................................................ 2
1.3 CARDINALIDADE N:N ........................................................................................................................... 3
2. RELACIONAMENTO TERNÁRIO .................................................................................................................. 3
BANCO DE DADOS
1. AUTORRELACIONAMENTO
No caso do autorrelacionamento, o mesmo tipo de entidade participa mais de uma vez em
um tipo de relacionamento em funções diferentes. Nesses casos, o nome da função torna-se
essencial para distinguir o significado da função que cada entidade participante desempenha.
Esses tipos de relacionamentos são chamados de relacionamentos recursivos. Por exemplo, o
tipo de relacionamento SUPERVISÃO relaciona um funcionário a um supervisor, no qual as
entidades funcionário e supervisor são membros do mesmo conjunto entidade FUNCIONÁRIO.
Logo, o tipo de entidade FUNCIONÁRIO participa duas vezes na SUPERVISÃO: uma vez no papel
de supervisor (ou chefe) e outra no papel de supervisionado (ou subordinado).
2. RELACIONAMENTO TERNÁRIO
Denominamos ternários os relacionamentos entre três conjuntos de entidades. Nesse
caso, a cardinalidade refere-se a pares de entidades relacionadas com a terceira. No exemplo a
seguir queremos garantir que a seguinte situação seja representada de forma apropriada: o
professor X ministra a disciplina Y para a turma Z. Sendo assim, essa condição deve ser
representada através de um relacionamento ternário.
Funciona assim:
TURMA E DISCIPLINA: Esse par pode estar associado a no máximo um professor.
TURMA E PROFESSOR: Esse par pode estar associado a muitas disciplinas, ou seja, o mesmo
professor pode ministrar na mesma turma várias disciplinas.
PROFESSOR E DISCIPLINA: Esse par pode estar associado a muitas turmas, ou seja, o professor
pode ministrar a mesma disciplina em várias turmas.
Referências
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. MODELO RELACIONAL ........................................................................................................................... 2
1.1 TERMINOLOGIA DO MODELO RELACIONAL ........................................................................................ 2
1.2 ORDENAÇÃO DE TUPLAS EM UMA RELAÇÃO ...................................................................................... 2
1.3 ORDEM DOS VALORES DENTRO DE UMA TUPLA ................................................................................ 3
BANCO DE DADOS
1. MODELO RELACIONAL
O modelo relacional foi introduzido por Edgar Frank Codd em 1970. Representa os dados
em um banco de dados como uma coleção de relações (tabelas). Sua teoria baseia-se na teoria
dos conjuntos e álgebra relacional.
De acordo com Elmasri e Navathe (2011, p.41), uma relação é definida como um conjunto
de tuplas. Matematicamente, os elementos de um conjunto não possuem ordem entre eles; logo,
as tuplas em uma relação não possuem nenhuma ordem em particular.
A ordenação da tupla não faz parte da definição da relação porque uma relação tenta
representar fatos em um nível lógico ou abstrato. Muitas ordens de tuplas podem ser
especificadas na mesma relação. Por exemplo, a relação apresentada na figura 1.3 é considerada
idêntica aquela mostrada na figura 1.2.
De acordo com a definição anterior de uma relação, uma tupla n é uma lista ordenada de
n valores, de modo que a ordem dos valores em uma tupla – e, portanto, dos atributos em um
esquema de relação – é importante.
No entanto, em um nível mais abstrato, a ordem dos atributos e seus valores não é tão
importante, desde que a correspondência entre atributos e valores seja mantida.
Referências
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. CHAVE .................................................................................................................................................... 2
1.1 CHAVE CANDIDATA........................................................................................................................ 2
1.2 CHAVE PRIMÁRIA (PK –PRIMARY KEY) ................................................................................................ 2
BANCO DE DADOS
1. CHAVE
O conceito básico para estabelecer relações entre linhas de tabelas de um banco de dados
relacional é o da chave.
Podemos afirmar que a tabela Aluno tem duas chaves candidatas: Matrícula e CPF. Nesse
caso, apenas uma chave candidata se tornará primária, ou seja, a chave candidata que não for
escolhida como primária passará a ser tratada como chave alternativa.
1.2 CHAVE PRIMÁRIA (PK –PRIMARY KEY)
No modelo entidade-relacionamento (MER) temos o atributo-chave, esse identificador, no
modelo relacional, é denominado de chave primária e tem as mesmas propriedades do modelo
anterior. Sendo assim, uma chave primária é um campo ou conjunto de campos que será
escolhida para garantir que cada tupla dentro de uma tabela seja única.
Cada tabela só pode ter uma chave primária. Porém, a chave primária pode ser simples ou
composta, ou seja, a chave primária será simples se for formada por apenas um campo
(atributo) da tabela, caso não seja possível utilizar apenas um campo como chave primária, é
possível combinar dois ou mais campos para que juntos formem uma única chave primária.
Propriedades da chave primária:
Única;
Campos obrigatórios (not null);
Irredutível.
Referências
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
HEUSER, Carlos Alberto. Projeto de Banco de dados.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. CHAVE ESTRANGEIRA (FOREIGN KEY) ....................................................................................................... 2
EXEMPLO 1 ................................................................................................................................................ 2
EXEMPLO 2 ................................................................................................................................................ 3
2. RESTRIÇÕES DE INTEGRIDADE ................................................................................................................... 4
BANCO DE DADOS
1. CHAVE ESTRANGEIRA (FOREIGN KEY)
Uma chave estrangeira é um campo ou conjunto de campos de uma tabela que aponta para
a chave primária (candidata) de outra tabela ou, em casos específicos, podendo apontar para a
chave primária da mesma tabela.
PRINCIPAIS CARACTERÍSTICAS:
Uma mesma tabela pode ter mais de uma chave estrangeira;
A chave estrangeira pode aceitar valor nulo (NULL);
A chave estrangeira de uma tabela tem que existir como chave primária na tabela
referenciada (restrição de integridade referencial).
EXEMPLO 1
Como podemos observar na figura 1.1, temos a tabela professor com os campos: CPF
(chave primária – PK), nome e endereço. Além disso, temos a tabela disciplina com os campos:
código (chave primária – PK), nome e CPF (chave estrangeira - FK).
Portanto, o campo CPF na tabela professor é chave primária (PK), porém, na tabela
disciplina o campo CPF é chave estrangeira apontando para a chave primária da tabela
professor.
EXEMPLO 2
Como podemos observar na figura 1.2, temos um caso de autorrelacionamento com razão
de cardinalidade 1:N.
No modelo lógico, temos a tabela funcionário com os campos: CPF (chave primária – PK),
nome, sexo e CPF_SUPERVISOR (chave estrangeira - FK).
Sendo assim, aqui temos um caso de uma chave estrangeira apontando para uma chave
primária da mesma tabela.
2. RESTRIÇÕES DE INTEGRIDADE
Um dos objetivos primordiais de um SGBD é a integridade de dados. Dizer que os dados
de um banco de dados estão íntegros significa dizer que eles refletem corretamente a realidade
representada pelo banco de dados e que são consistentes entre si. Para tentar garantir a
integridade de um banco de dados, o SGBD oferece o mecanismo de restrição de integridade.
Uma restrição de integridade é uma regra de consistência de dados que é garantida pelo
próprio SGBD. No caso da abordagem relacional, costuma-se classificar as restrições de
integridade nas seguintes categorias:
Integridade de domínio: define os valores que podem ser assumidos pelos campos
de uma coluna.
Integridade de vazio: especifica se o campo de uma coluna pode ou não ser vazio.
Integridade de unicidade: define que o valor do campo seja único.
Integridade de chave: define que os valores da chave primária e alternativa devem
ser únicos.
Integridade de entidade: define que nenhum valor da chave primária pode ser
nulo.
Integridade referencial: define que os valores dos campos que aparecem numa
chave estrangeira devem aparecer na chave primária da tabela referenciada.
Referências
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
HEUSER, Carlos Alberto. Projeto de Banco de dados.
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. MAPEAMENTO MER-MR ........................................................................................................................... 2
MAPEAMENTO MER- MR (CARDINALIDADE 1:1) ...................................................................................... 2
EXEMPLO 1 ................................................................................................................................................ 2
EXEMPLO 2 ................................................................................................................................................ 3
EXEMPLO 3 ................................................................................................................................................ 4
EXEMPLO 4 ................................................................................................................................................ 5
FUSÃO DE TABELAS ....................................................................................................................................... 6
EXEMPLO 1 ................................................................................................................................................ 6
EXEMPLO 2 ................................................................................................................................................ 7
BANCO DE DADOS
1. MAPEAMENTO MER-MR
O mapeamento é feito em etapas para não perdermos nenhuma informação e restrições
já impostas no projeto. É possível mapear em esquemas de tabelas os seguintes elementos do
diagrama entidade-relacionamento: entidades, atributos e relacionamentos. Para fazermos
essa migração, a indicação básica e determinante é a cardinalidade prescrita.
O mapeamento será descrito em etapas para compreendermos com mais clareza o que é
preciso ser feito.
Relacionamentos binários
EXEMPLO 1
ETAPA 1
ETAPA 2
ETAPA 4
Na tabela professor será adicionado o campo COD, nesse caso, esse campo será a chave
estrangeira da tabela professor que estará apontando para a chave primária COD da tabela
disciplina, implementando assim, o relacionamento entre essas tabelas.
EXEMPLO 2
ETAPA 1
ETAPA 2
ETAPA 3
ETAPA 4
Na tabela disciplina será adicionado o campo CPF, nesse caso, esse campo será a chave
estrangeira da tabela disciplina que estará apontando para a chave primária CPF da tabela
professor.
EXEMPLO 3
ETAPA 1
ETAPA 2
ETAPA 3
ETAPA 4
Na tabela disciplina será adicionado o campo CPF, ou seja, esse campo será a chave
estrangeira da tabela disciplina que estará apontando para a chave primária CPF da tabela
professor. Nesse caso, a chave estrangeira terá que ser um campo NOT NULL, logo, esse campo
será de preenchimento obrigatório.
EXEMPLO 4
ETAPA 1
As entidades professor e disciplina do modelo entidade-relacionamento se transformam
em tabelas no modelo lógico.
ETAPA 2
ETAPA 3
ETAPA 4
Na tabela professor será adicionado o campo COD, ou seja, esse campo será a chave
estrangeira da tabela professor que estará apontando para a chave primária COD da tabela
disciplina. Nesse caso, a chave estrangeira terá que ser um campo NOT NULL, logo, esse campo
será de preenchimento obrigatório.
FUSÃO DE TABELAS
EXEMPLO 1
EXEMPLO 2
Se a participação dos dois lados for obrigatória, então, a melhor solução será a fusão das
tabelas. Nesse caso, podemos afirmar que os campos CPF e COD são chaves candidatas, ou seja,
somente um desses campos poderá ser escolhido como chave primária da tabela.
Alternativa 1
Alternativa 2
Referências
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
HEUSER, Carlos Alberto. Projeto de Banco de dados.
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. MAPEAMENTO MER-MR ........................................................................................................................... 2
MAPEAMENTO MER- MR (CARDINALIDADE 1:N) ...................................................................................... 2
EXEMPLO 1 ................................................................................................................................................ 2
EXEMPLO 2 ................................................................................................................................................ 3
EXEMPLO 3 ................................................................................................................................................ 4
EXEMPLO 4 ................................................................................................................................................ 5
BANCO DE DADOS
1. MAPEAMENTO MER-MR
O mapeamento é feito em etapas para não perdermos nenhuma informação e restrições
já impostas no projeto. É possível mapear em esquemas de tabelas os seguintes elementos do
diagrama entidade-relacionamento: entidades, atributos e relacionamentos. Para fazermos
essa migração, a indicação básica e determinante é a cardinalidade prescrita.
O mapeamento será descrito em etapas para compreendermos com mais clareza o que é
preciso ser feito.
Relacionamentos binários
EXEMPLO 1
ETAPA 1
ETAPA 2
ETAPA 3
ETAPA 4
Em relacionamentos um para muitos (1:N), a chave estrangeira deve ser criada no lado N
da cardinalidade do relacionamento, ou seja, na tabela disciplina será adicionado o campo CPF,
nesse caso, esse campo será a chave estrangeira da tabela disciplina que estará apontando para
a chave primária CPF da tabela professor.
EXEMPLO 2
ETAPA 1
ETAPA 2
ETAPA 3
ETAPA 4
EXEMPLO 3
ETAPA 1
ETAPA 2
ETAPA 3
ETAPA 4
Nesse exemplo, temos uma novidade. Observe que agora temos um atributo no
relacionamento, nesse caso, o atributo data. Portanto, tanto a chave estrangeira (CPF) como o
atributo data, serão adicionados na tabela disciplina.
EXEMPLO 4
ETAPA 1
As entidades funcionário e dependente do modelo entidade-relacionamento se
transformam em tabelas no modelo lógico.
ETAPA 2
ETAPA 3
ETAPA 4
Nesse exemplo, temos mais uma novidade. Agora temos no modelo entidade-
relacionamento uma entidade fraca, nesse caso, a entidade dependente. Sendo assim, a regra
para esse mapeamento indica que a chave estrangeira terá que compor a chave primária, ou
seja, na tabela dependente será criada uma chave primária composta: Nr_D (chave parcial) +
CPF.
Referências
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
HEUSER, Carlos Alberto. Projeto de Banco de dados.
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
BANCO DE DADOS ............................................................................................................................................. 2
1. MAPEAMENTO MER-MR ........................................................................................................................... 2
MAPEAMENTO MER- MR (CARDINALIDADE N:N) ..................................................................................... 2
Exemplo 1 .................................................................................................................................................. 2
EXEMPLO 2 ................................................................................................................................................ 3
MAPEAMENTO AUTORRELACIONAMENTO (CARDINALIDADE N:N).......................................................... 4
EXEMPLO ................................................................................................................................................... 4
BANCO DE DADOS
1. MAPEAMENTO MER-MR
O mapeamento é feito em etapas para não perdermos nenhuma informação e restrições
já impostas no projeto. É possível mapear em esquemas de tabelas os seguintes elementos do
diagrama entidade-relacionamento: entidades, atributos e relacionamentos. Para fazermos
essa migração, a indicação básica e determinante é a cardinalidade prescrita.
O mapeamento será descrito em etapas para compreendermos com mais clareza o que é
preciso ser feito.
EXEMPLO 2
EXEMPLO
Referências
ELMASRI., NAVATHE. Sistemas de Banco de Dados. 6 Ed. Pearson, 2011.
HEUSER, Carlos Alberto. Projeto de Banco de dados.
DATE, C.J. Introdução a sistemas de banco de dados. 8. Ed. Rio de Janeiro: Elsevier, 2004.
CARDOSO, VIRGÍNIA. Sistema de Banco de Dado. Ed. Saraiva, 2012.
DE SORDI, JOSÉ OSVALDO. Modelagem de dados. Ed. Érica, 2019.
SUMÁRIO
TEORIA DA INFORMAÇÃO ................................................................................................................................. 2
DADOS ........................................................................................................................................................... 2
TIPOS DE DADOS............................................................................................................................................ 2
DADOS ESTRUTURADOS ............................................................................................................................ 2
DADOS SEMIESTRUTURADOS .................................................................................................................... 2
DADOS NÃO ESTRUTURADOS .................................................................................................................... 3
TEORIA DA INFORMAÇÃO
DADOS
Resumindo, dados podem ser definidos como sucessões de fatos brutos, que não foram
processados, relacionados, avaliados ou interpretados, representando apenas partes isoladas
de eventos, situações ou ocorrências.
TIPOS DE DADOS
Os dados podem ser classificados como:
Estruturados
Semiestruturados
Não estruturados
DADOS ESTRUTURADOS
Dados estruturados são aqueles organizados e representados com uma estrutura rígida,
a qual foi previamente planejada para armazená-los. Sendo assim, os dados armazenados e
mantidos por um SGBD (sistema gerenciador de banco de dados) são exemplos de dados
estruturados.
Principais características:
DADOS SEMIESTRUTURADOS
<cadastro>
<nome>Rafael Araújo</nome>
<e-mail>prof.rafaelaraujo@outlook.com</e-mail>
</cadastro>
Assim, é fácil concluir que as redes sociais, as quais possuem um enorme volume de dados,
como textos, imagens e vídeos criados diariamente por usuários, representam outro exemplo
de dados não estruturados. Atualmente, mais de 80% do conteúdo digital gerado no mundo é
do tipo não estruturado.
SUMÁRIO
TEORIA DA INFORMAÇÃO ................................................................................................................................. 2
INFORMAÇÃO ................................................................................................................................................ 2
CONHECIMENTO............................................................................................................................................ 2
TEORIA DA INFORMAÇÃO
De acordo com a teoria da Informação, a forma de representação mais simples de uma
informação é dada por um par de possibilidades/opções, que indicam situações opostas, tais
como: sim/não, ligado/desligado, verdadeiro/falso etc. Em computação, essas opções podem
ser representadas por um dígito binário, o famoso bit (binary digit), da seguinte maneira:
BIT SIGNIFICADO
Não, desligado, falso.
0
Sim, ligado, verdadeiro.
1
Portanto, o bit é a menor unidade de informação que pode ser armazenada, transmitida
ou processada por um sistema computacional.
INFORMAÇÃO
Podemos definir informação como sendo um conjunto de dados ordenados e organizados
de forma a transmitir significado e compreensão dentro de um determinado contexto, ou seja,
dados brutos não podem ser definidos como informação. Dessa forma, informação deve ser
aquilo que reduz a incerteza. Além disso, a informação deve ser utilizada de forma a
fundamentar o conhecimento.
A clara percepção da informação é o primeiro requisito para que ela possa ser
compreendida, e a compreensão de uma informação é o primeiro passo para que ela se torne
um conhecimento.
CONHECIMENTO
É a capacidade, adquirida por alguém, de interpretar e operar sobre um conjunto de
informações. Essa capacidade é construída a partir de experiências, impressões, valores,
crenças etc.
O conhecimento é dinâmico, ou seja, quem conhece pode estabelecer novas relações, tirar
novas conclusões, fazer novas inferências, agregar novas informações, reformular significados.
Ao exercitar o conhecimento, ele se consolida e cresce. Portanto, conhecimento é uma
propriedade subjetiva, inerente a quem analisa as informações. Sendo assim, conhecer é o
processo de compreender e interiorizar as informações recebidas, possivelmente combinando-
as de forma a gerar mais conhecimento.
1. Conhecimento Tácito:
➢ A palavra tácito vem do latim tacitus que significa “silencioso, não expresso por
palavras”.
➢ É o conhecimento que existe na mente das pessoas, formulado a partir de
experiências que cada um adquiriu ao longo de sua vida.
➢ É altamente pessoal, ou seja, difícil de ser formalizado ou explicado a outra pessoa,
pois é subjetivo e inerente às habilidades de um indivíduo, como “know-how”.
2. Conhecimento Explícito:
➢ A palavra explícito vem do latim explicitus que significa “formal, explicado, claro,
declarado”.
➢ É o conhecimento formal, claro, regrado, fácil de ser descrito e comunicado a outras
pessoas.
➢ É o conhecimento que está registrado em livros, revistas, artigos, diagramas,
desenhos, figuras e documentos, dentre outros.
➢ Esse conhecimento é de fácil articulação, manipulação e transmissão.
SUMÁRIO
TEORIA DA INFORMAÇÃO ................................................................................................................................. 2
MODELO SECI ............................................................................................................................................ 2
DADO, INFORMAÇÃO E CONHECIMENTO ..................................................................................................... 3
INTELIGÊNCIA ................................................................................................................................................ 3
TEORIA DA INFORMAÇÃO
ESPIRAL DO CONHECIMENTO
Os modos de conversão do conhecimento são identificados como modelo SECI
desenvolvido por Nonaka e Takeuchi (1997). Esse modelo detalha a conversão de
conhecimentos entre tácito e explícito. Os quatro modos de conversão do conhecimento
formam um ciclo ou espiral do conhecimento.
MODELO SECI
SOCIALIZAÇÃO
EXTERNALIZAÇÃO
SECI
COMBINAÇÃO
INTERNALIZAÇÃO
MODOS DE CONVERSÃO DO CONHECIMENTO:
INTELIGÊNCIA
Inteligência no nosso contexto diz respeito à sabedoria, ou seja, quando alguém utiliza o
seu conhecimento para algum propósito. Sendo assim, é uma habilidade essencialmente
humana. Nessa etapa, os gestores aplicam ao conhecimento gerado, suas habilidades, suas
competências de negócio e vivência na organização, para identificar direções estratégicas, tais
como:
➢ Novos projetos de pesquisa;
➢ Acordos de cooperação;
➢ Transferência de tecnologia;
➢ Ações e reações da concorrência.
NOÇÕES DE PROGRAMAÇÃO����������������������������������������������������������������������������������� 3
LINGUAGENS DE PROGRAMAÇÃO���������������������������������������������������������������������������������������������������� 3
LINGUAGEM DE BAIXO NÍVEL�������������������������������������������������������������������������������������������������������������������������������������������3
LINGUAGEM DE ALTO NÍVEL���������������������������������������������������������������������������������������������������������������������������������������������3
LINGUAGEM COMPILADA��������������������������������������������������������������������������������������������������������������������������������������������������4
LINGUAGEM INTERPRETADA��������������������������������������������������������������������������������������������������������������������������������������������4
PYTHON��������������������������������������������������������������������������������������������������������������������������������������� 4
NOÇÕES DE PROGRAMAÇÃO 3
NOÇÕES DE PROGRAMAÇÃO
O primeiro passo para aprender programação é entender que um programador precisa ser
capaz de formular um problema do mundo real em termos computacionais. Em seguida, o pro-
gramador terá que elaborar uma solução para esse problema em termos computacionais, ou seja,
um algoritmo será implementado para solucionar o problema. Sendo assim, o programador terá
que escrever um programa em uma linguagem de programação que implemente esse algoritmo.
Além disso, é fundamental testar o programa para verificar se ele realmente resolve o problema
de forma correta.
IMPORTANTE – Um algoritmo nada mais é do que um texto contendo comandos (instruções) que devem ser
executados numa determinada ordem. Ou seja, algoritmo é um conjunto de instruções, como uma receita de
bolo, constituído de um número finito de passos.
De forma simplificada, em computação o que fazemos é:
» analisar o problema;
» criar um algoritmo genérico que resolva esse problema;
» escrever um programa que implemente esse algoritmo;
» testar o programa para verificar se ele realmente funciona.
LINGUAGENS DE PROGRAMAÇÃO
Linguagens formais, precisas e cujas instruções podem ser executadas por um computador.
Basicamente, as linguagens de programação podem ser divididas em: linguagem de baixo nível e
linguagem de alto nível.
LINGUAGEM COMPILADA
Nessa linguagem, um compilador lê o programa de alto nível (denominado código-fonte) e
traduz esse código completamente antes de executá-lo, ou seja, o compilador traduz o código-fonte
para código de máquina de uma plataforma específica e salva o código gerado em um arquivo
executável. Uma vez que o programa tenha sido compilado, você pode executá-lo quantas vezes
quiser, sem que seja necessário usar o compilador novamente.
Exemplos de linguagens compiladas: C e C++.
LINGUAGEM INTERPRETADA
As linguagens interpretadas funcionam da seguinte forma: um interpretador lê as linhas do
código-fonte uma de cada vez, e para cada linha interpretada uma ação é executada internamente
no computador, a qual irá gerar algum tipo de saída. Dessa forma, se o código do programa tiver dez
linhas e a nona linha possuir um erro, você só irá descobri-lo quando a nona linha for interpretada
e tiver feito todas as operações das linhas anteriores.
Já em uma linguagem compilada, o compilador verifica todas as linhas do programa antes de
executá-lo, ou seja, um programa compilado só é executado se todo o código estiver corretamente
escrito e for antes verificado, o que não acontece com um código de programa em linguagem
interpretada.
Exemplos de linguagens interpretadas: Python e R.
PYTHON
Python é uma linguagem de programação de alto nível. Essa linguagem é muito interessante
como primeira linguagem de programação devido à sua simplicidade e clareza. Embora simples,
Python é uma linguagem poderosa, podendo ser usada, por exemplo, para análise de dados, inte-
ligência artificial e machine learning.
Python é software livre e pode ser utilizado em praticamente qualquer arquitetura de com-
putadores ou sistema operacional, como Linux, Microsoft Windows e Mac OS.
Uma grande vantagem do Python é a legibilidade dos programas escritos nessa linguagem.
Outras linguagens de programação utilizam inúmeras marcações, como ponto (.) ou ponto e vírgula
(;), no fim de cada linha, além dos marcadores de início e fim de bloco como ({ }) ou palavras espe-
ciais (begin/end). Esses marcadores tornam os programas um tanto mais difíceis de ler e felizmente
não são usados em Python.
NOÇÕES DE PROGRAMAÇÃO 5
Principais características:
» Python é uma linguagem dinamicamente tipada: não há declaração explícita de
tipos de variáveis;
» Fortemente tipada: impede operações entre tipos incompatíveis;
» Case-sensitive;
» Indentação obrigatória: define blocos e hierarquias.
INDENTAÇÃO
Python é uma das poucas linguagens de programação que utiliza o deslocamento do texto à direita (recuo) para
marcar o início e o fim de um bloco.
Exemplo
While <condição>:
bloco
PYTHON
SUMÁRIO
PYTHON������������������������������������������������������������������������������������������������������������� 3
INSTALAÇÃO NO WINDOWS������������������������������������������������������������������������������������������������������������ 3
USANDO O INTERPRETADOR PYTHON�����������������������������������������������������������������������������������������������������������������������������3
OPERADORES MATEMÁTICOS�������������������������������������������������������������������������������������������������������������������������������������������3
FUNÇÃO PRINT������������������������������������������������������������������������������������������������������������������������������������������������������������������4
PYTHON 3
PYTHON
INSTALAÇÃO NO WINDOWS
Python está disponível para todas as versões de Windows. Como é um software livre, podemos
baixar o interpretador Python gratuitamente no site http://www.python.org.
Observe que o cursor está posicionado dentro da janela Python Shell, e que a linha de coman-
dos é iniciada pela sequência >>>.
O interpretador Python também pode ser utilizado como calculadora. Sendo assim, é funda-
mental conhecer os operadores matemáticos.
OPERADORES MATEMÁTICOS
Operador Operação
** Exponenciação ou potenciação
% Módulo ou resto
* Multiplicação
- Subtração
+ Adição
1.Exponenciação (**).
2.Multiplicação (*), divisão (/ e //) e módulo (%).
3.Adição (+) e subtração (-).
A expressão 400 + (200 * 5 / 100) é equivalente a:
Não se esqueça de que, tanto em Python como na matemática, as operações de mesma prio-
ridade são realizadas da esquerda para a direita. Utilize parênteses sempre que precisar alterar a
ordem de execução das operações.
FUNÇÃO PRINT
A função print informa que vamos exibir algo na tela. Podemos dizer que a função exibe uma
mensagem na tela do computador.
Sempre que quisermos mostrar algo para o usuário do computador, como uma mensagem,
uma pergunta ou o resultado de uma operação de cálculo, utilizaremos a função print.
Outro elemento importante são as aspas. Elas são utilizadas para separar os textos destinados
ao usuário do computador do resto do programa. Utilizamos aspas para indicar o início e o fim do
texto de nossa mensagem.
A mensagem é nosso texto em si e será exibida exatamente como digitada. Os parênteses são
utilizados para separar os parâmetros de uma função. Um parâmetro é um valor passado para uma
função: no caso da função print, a mensagem a imprimir (Alfa).
PYTHON
SUMÁRIO
PYTHON������������������������������������������������������������������������������������������������������������� 3
CONCEITOS DE VARIÁVEIS E ATRIBUIÇÃO���������������������������������������������������������������������������������������� 3
NOMES DE VARIÁVEIS�������������������������������������������������������������������������������������������������������������������������������������������������������3
TIPOS DE DADOS���������������������������������������������������������������������������������������������������������������������������������������������������������������3
VARIÁVEIS NUMÉRICAS�����������������������������������������������������������������������������������������������������������������������������������������������������4
PYTHON 3
PYTHON
CONCEITOS DE VARIÁVEIS E ATRIBUIÇÃO
Além de operações simples de cálculo, o interpretador também pode ser usado para realizar
operações mais complexas e até executar programas completos. Antes de continuarmos, é impor-
tante observar o conceito de variável e como podemos usá-la em um programa. Em matemática,
aprendemos o conceito de variável para representar incógnitas e equações do tipo x + 1 = 2, cujo
valor de x deve ser determinado, resolvendo a equação. Em programação, variáveis são utilizadas
para armazenar valores e para nomear uma área da memória do computador onde armazenamos
dados.
Por enquanto, podemos imaginar a memória do computador como uma grande estante, na
qual cada compartimento tem um nome. Para armazenar algo nesses compartimentos, usaremos
o símbolo de igualdade entre o nome do compartimento e o valor que queremos armazenar. Cha-
maremos essa operação de atribuição na qual um valor é atribuído a uma variável.
Quando lermos nosso programa, as operações de atribuição serão chamadas “recebe”, ou
seja, uma variável recebe um valor. Nesse caso, para declarar [criar] uma variável, você só precisa
dar a ela algum valor, ou seja, quando você atribui um valor a uma variável pela primeira vez, ela
é automaticamente criada, por exemplo, nome_da_variável = valor.
IMPORTANTE - O # é o símbolo usado para indicar um comentário. Comentários são ignorados pelo interpreta-
dor Python e podemos escrever o que quisermos.
NOMES DE VARIÁVEIS
Em Python, nomes de variáveis podem conter letras, números e o símbolo sublinha (_). Vejamos
exemplos completos de nomes válidos e inválidos em Python na tabela a seguir.
IMPORTANTE - A versão 3 da linguagem Python permite a utilização de acentos em nomes variáveis, pois, por
padrão, os programas são interpretados utilizando-se um conjunto de caracteres chamado UTF-8, capaz de
representar praticamente todas as letras dos alfabetos conhecidos.
TIPOS DE DADOS
Variáveis têm outras propriedades além de nome e conteúdo. Uma delas é conhecida como
tipo e define a natureza dos dados que a variável armazena. Python tem vários tipos de dados,
4
mas os mais comuns são números inteiros (class ‘int’), números de ponto flutuante (class ‘float’)
e strings (class ‘str’).
Além de poder armazenar números e letras, as variáveis também podem armazenar valores
como verdadeiro ou falso. Nesse caso, utilizaremos um tipo de variável chamado tipo lógico ou
booleano (class ‘bool’). Em Python, escreveremos True para verdadeiro e False para falso. Observe
que o T e o F são escritos com letras maiúsculas.
VARIÁVEIS NUMÉRICAS
Dizemos que uma variável é numérica, quando armazena números inteiros ou de ponto flu-
tuante. Os números inteiros são aqueles sem parte decimal, como 1,0; -5,550; -47, 30000.
Números de ponto flutuante ou decimais são aqueles com parte decimal, como 1.0, 5.478,
10.478. Observe que 1.0, mesmo tendo zero na parte decimal é um número de ponto flutuante.
PYTHON 5
PYTHON������������������������������������������������������������������������������������������������������������� 3
VARIÁVEIS DO TIPO LÓGICO���������������������������������������������������������������������������������������������������������������������������������������������3
OPERADORES RELACIONAIS��������������������������������������������������������������������������������������������������������������������������������������������3
OPERADORES LÓGICOS����������������������������������������������������������������������������������������������������������������������������������������������������4
OPERADOR AND����������������������������������������������������������������������������������������������������������������������������������������������������������������4
OPERADOR OR�������������������������������������������������������������������������������������������������������������������������������������������������������������������5
OPERADOR NOT����������������������������������������������������������������������������������������������������������������������������������������������������������������5
EXPRESSÕES LÓGICAS�����������������������������������������������������������������������������������������������������������������������������������������������������5
PYTHON 3
PYTHON
VARIÁVEIS DO TIPO LÓGICO
Muitas vezes, queremos armazenar um conteúdo simples: verdadeiro ou falso em uma variá-
vel. Nesse caso, utilizaremos um tipo de variável chamado tipo lógico ou booleano. Em Python,
escreveremos True para verdadeiro e False para falso. Observe que o T e o F são escritos com letras
maiúsculas:
ͫ resultado= True
ͫ aprovado= False
OPERADORES RELACIONAIS
Para realizarmos comparações lógicas, utilizaremos operadores relacionais. A lista de operadores
relacionais suportados em Python é apresentada na tabela a seguir.
4
Operador Operação
== Igualdade
!= Diferente
< Menor que
> Maior que
<= Menor ou igual
>= Maior ou igual
O resultado de uma comparação com esses operadores é um valor do tipo lógico, ou seja,
True (verdadeiro) ou False (falso).
Considere:
ͫ a=7
ͫ b=10
ͫ c=6.9
ͫ d=1
ͫ e=9.
OPERADORES LÓGICOS
Para agrupar operações com lógica booleana, utilizaremos operadores lógicos. Python suporta
três operadores básicos: not (não), and (e), or (ou).
OPERADOR AND
O operador and (e) resulta verdadeiro apenas quando os seus dois operadores forem
verdadeiros.
OPERADOR OR
A regra fundamental do operador or (ou) é que ele resulta em falso apenas se seus dois opera-
dores também forem falsos. Se apenas um de seus operadores for verdadeiro, ou se os dois forem,
o resultado da operação será verdadeiro.
OPERADOR NOT
O operador not é o mais simples, pois precisa apenas de um operador. A operação de negação
também é chamada de inversão, pois um valor verdadeiro negado se torna falso e vice-versa.
EXPRESSÕES LÓGICAS
Os operadores lógicos podem ser combinados em expressões lógicas mais complexas. Quando
uma expressão tiver mais de um operador lógico, avalia-se o operador not (não) primeiro, seguido
do operador and (e) e, finalmente, or (ou).
Os operadores relacionais também podem ser utilizados em expressões com operadores
lógicos. Nesses casos, os operadores relacionais devem ser avaliados primeiro.
PYTHON
SUMÁRIO
PYTHON������������������������������������������������������������������������������������������������������������� 3
VARIÁVEIS DO TIPO STRING������������������������������������������������������������������������������������������������������������ 3
OPERAÇÕES COM STRINGS����������������������������������������������������������������������������������������������������������������������������������������������4
F-STRING���������������������������������������������������������������������������������������������������������������������������������������������������������������������������5
ENTRADA DE DADOS���������������������������������������������������������������������������������������������������������������������������������������������������������6
FUNÇÃO INPUT�����������������������������������������������������������������������������������������������������������������������������������������������������������������6
CONVERSÃO ENTRADA DE DADOS�����������������������������������������������������������������������������������������������������������������������������������7
PYTHON 3
PYTHON
VARIÁVEIS DO TIPO STRING
Variáveis do tipo string armazenam cadeias de caracteres com nomes e textos em geral. Cha-
mamos cadeia de caracteres uma sequência de símbolos como letras, números, sinais de pontuação
etc. Podemos imaginar uma string com uma sequência de blocos, em que cada letra, número ou
espaço em branco ocupa uma posição.
Para possibilitar separação entre o texto do seu programa e o conteúdo de uma string, utili-
zaremos aspas (“) para desabilitar o início e o fim de sequência de caracteres.
Uma string em Python tem um tamanho associado, assim como um conteúdo que pode ser
acessado caractere a caractere. O tamanho de uma string pode ser obtido utilizando-se a função
len. Essa função retorna o número de caracteres na string. Dizemos que a função retorna um valor,
quando podemos substituir o texto da função por seu resultado. A função len retorna um valor
do tipo inteiro, representando a quantidade de caracteres contidos na string. Se a string é vazia
(representada simplesmente por “”, ou seja, duas aspas sem nada entre elas, nem mesmo espaço
em branco), seu tamanho é igual a zero.
Como dito anteriormente, outra característica de strings é poder acessar seu conteúdo carac-
tere a caractere. Sabendo que uma string tem um determinado tamanho, podemos acessar seus
caracteres utilizando o número inteiro para representar sua posição. Esse número é chamado de
índice, e começamos a contar de zero. Isso quer dizer que o primeiro caractere da string é de posi-
ção ou índice 0.
Para acessar os caracteres de uma string, devemos informar o índice ou posição do caractere
entre colchetes ([ ]). Como o primeiro caractere de uma string é o de índice 0, podemos acessar
valores de 0 até o tamanho de uma string menos 1. Logo, se a string contiver 9 caracteres, podemos
acessar os caracteres de 0 a 8.
Se tentarmos acessar um índice maior que a quantidade de caracteres da string, o interpre-
tador emitirá uma mensagem de erro.
4
ͫ COMPOSIÇÃO
Podemos utilizar composição para combinar vários valores em uma nova string. Nesse caso,
uma das formas de compor strings é utilizando o método format. Vejamos o exemplo a seguir:
nome = “Marcos”
idade = 18
print(“ O funcionário {} tem {} anos”.format(nome,idade))
F-STRING
Outra forma de compor strings é utilizando o método f-string (adicionada na versão 3.6). Ela se
chama f-string, pois escrevemos a letra f antes de abrirmos as aspas. Vejamos o programa anterior,
mas dessa vez usando f-string:
nome = “Marcos”
idade = 18
print(f”O funcionário {nome} tem {idade} anos.”)
6
Com f-strings, além de prefixarmos a string com a letra f, escrevemos o nome da variável dire-
tamente na string, entre {}. Essa forma é mais compacta que utilizar o método format.
ENTRADA DE DADOS
Até agora, nossos programas trabalharam apenas com valores conhecidos, escritos no pró-
prio programa. No entanto, a melhor programação é poder escrever a solução de um problema e
aplicá-la várias vezes. Para isso, precisamos melhorar nossos programas de forma a permitir que
nossos valores sejam fornecidos durante sua execução, de modo que possamos executá-los com
valores diferentes sem alterar os programas propriamente
Chamamos entrada de dados o momento em que o programa recebe valores por um dispo-
sitivo de entrada de dados (como teclado do computador) ou o arquivo em disco. Nesse caso, em
Python utilizaremos a função input para a entrada de dados.
FUNÇÃO INPUT
A função input é utilizada para solicitar dados do usuário. Ela recebe um parâmetro, que é a
mensagem a ser exibida, e retorna o valor digitado pelo usuário.
Vejamos um exemplo:
PYTHON 7
a= input(‘Digite um número:’)
print(a)
Que produz a seguinte saída na tela (se você digitar o 36 e pressionar a tecla ENTER):
PROGRAMAÇÃO PYTHON��������������������������������������������������������������������������������������� 3
CONDIÇÕES���������������������������������������������������������������������������������������������������������������������������������� 3
IF����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3
ELSE����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4
PROGRAMAÇÃO PYTHON 3
PROGRAMAÇÃO PYTHON
CONDIÇÕES
Nem sempre todas as linhas dos programas serão executadas. Muitas vezes, será mais interes-
sante decidir que parte do programa deve ser executada com base no resultado de uma condição.
A base dessas decisões consistirá em expressões lógicas que permitiram representar escolhas em
programas.
IF
As condições servem para selecionar quando uma parte do programa deve ser ativada e
quando deve ser simplesmente ignorada. Em Python, a estrutura de decisão é o if. Seu formato é
apresentado a seguir:
If<condição>:
Bloco verdadeiro
O if nada mais é que o nosso “se”. Poderemos, então, entendê-lo em português da seguinte
forma: se a condição for verdadeira, faça algo.
IMPORTANTE – O sinal de dois pontos após a condição é obrigatório em Python, ou seja, se não for utilizado o
código do programa irá apresentar um erro.
Vejamos o exemplo a seguir
Para resolver o problema do código mostrado na imagem, basta acrescentar o sinal de dois
pontos após a condição. Vejamos o exemplo a seguir:
Nesse caso, podemos observar que o valor da variável “a” é diferente do valor da variável “b”,
logo, o programa irá imprimir na tela a mensagem: Os dois valores são diferentes!
Mas se os valores fossem iguais? Bem, nesse caso, o nosso programa não iria apresentar
nenhuma mensagem na tela.
4
ELSE
A cláusula else é usada para especificar o que fazer, caso o resultado da avaliação da condição
seja falso, sem precisarmos de um novo if. Vejamos como ficaria o programa escrito para usar else.
Vejamos o exemplo a seguir
PROGRAMAÇÃO
PYTHON
SUMÁRIO
PROGRAMAÇÃO PYTHON��������������������������������������������������������������������������������������� 3
ESTRUTURAS ANINHADAS�������������������������������������������������������������������������������������������������������������� 3
PROGRAMAÇÃO PYTHON 3
PROGRAMAÇÃO PYTHON
ESTRUTURAS ANINHADAS
Nem sempre nossos programas serão tão simples. Muitas vezes, precisaremos aninhar vários
if para obter o comportamento desejado do programa. Aninhar, nesse caso, é utilizar um if dentro
de outro. Porém, a linguagem Python apresenta uma solução muito interessante ao problema de
múltiplos ifs aninhados. A cláusula elif substitui um par else if, mas sem criar outro nível de estru-
tura, evitando problemas de deslocamentos desnecessários à direita.
Dessa forma, a cláusula elif é a maneira de dizer “se as condições anteriores não eram ver-
dadeiras, então tente esta condição”. Ao contrário da cláusula else, é possível utilizar um número
arbitrário de declarações de elif.
Vejamos o exemplo a seguir
A sintaxe do programa está correta e, quando executado, caso o usuário digite 1, ele apre-
sentará o seguinte resultado.
0.25
PROGRAMAÇÃO
PYTHON
SUMÁRIO
PROGRAMAÇÃO PYTHON��������������������������������������������������������������������������������������� 3
REPETIÇÕES��������������������������������������������������������������������������������������������������������������������������������� 3
WHILE��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3
PROGRAMAÇÃO PYTHON 3
PROGRAMAÇÃO PYTHON
REPETIÇÕES
Repetições representam a base de vários programas. São utilizadas para executar a mesma
parte de um programa várias vezes, normalmente dependendo de uma condição.
WHILE
Uma das estruturas de repetição do Python é o while, que repete um bloco enquanto a condi-
ção for verdadeira. Seu formato é apresentado a seguir, em que condição é uma expressão lógica, e
bloco representa as linhas de programa a repetir enquanto o resultado da condição for verdadeiro.
while <condição>:
Bloco
Vejamos o exemplo a seguir
PROGRAMAÇÃO
PYTHON
SUMÁRIO
PROGRAMAÇÃO PYTHON��������������������������������������������������������������������������������������� 3
WHILE������������������������������������������������������������������������������������������������������������������������������������������ 3
OPERADORES DE ATRIBUIÇÃO ESPECIAIS����������������������������������������������������������������������������������������������������������������������3
INTERROMPENDO A REPETIÇÃO��������������������������������������������������������������������������������������������������������������������������������������4
PROGRAMAÇÃO PYTHON 3
PROGRAMAÇÃO PYTHON
WHILE
Uma das estruturas de repetição do Python é o while, que repete um bloco enquanto a condi-
ção for verdadeira. Seu formato é apresentado a seguir, em que condição é uma expressão lógica, e
bloco representa as linhas de programa a repetir enquanto o resultado da condição for verdadeiro.
while <condição>:
Bloco
2.
Considerando-se o código acima, escrito na linguagem Python, é correto afirmar que
7
9
é o resultado do referido código.
GABARITO: CERTO
INTERROMPENDO A REPETIÇÃO
Embora muito útil, a estrutura while só verifica sua condição de parada na início de cada
repetição. Dependendo do problema, a habilidade de terminar while dentro do bloco a repetir
pode ser interessante.
A instrução break é utilizada para interromper a execução de while independentemente do
valor atual da condição.
No que diz respeito à linguagem de programação Python, julgue o item a seguir.
PROGRAMAÇÃO PYTHON��������������������������������������������������������������������������������������� 3
LISTA������������������������������������������������������������������������������������������������������������������������������������������� 3
CÓPIA E FATIAMENTO DE LISTAS�������������������������������������������������������������������������������������������������������������������������������������4
TAMANHO DE LISTAS��������������������������������������������������������������������������������������������������������������������������������������������������������5
ADIÇÃO DE ELEMENTOS���������������������������������������������������������������������������������������������������������������������������������������������������6
ORDENAÇÃO DE UMA LISTA���������������������������������������������������������������������������������������������������������������������������������������������7
REMOÇÃO DE ELEMENTOS DA LISTA�������������������������������������������������������������������������������������������������������������������������������7
PROGRAMAÇÃO PYTHON 3
PROGRAMAÇÃO PYTHON
LISTA
Listas são um tipo de variável que permite o armazenamento de vários valores, acessados por
um índice. Uma lista pode conter zero ou mais elementos de um mesmo tipo ou de tipos diversos,
podendo inclusive conter outras listas. O tamanho de uma lista é igual à quantidade de elementos
que ela contém.
Podemos imaginar uma lista como um edifício de apartamentos, em que o térreo é o andar
zero, o primeiro andar 1 e assim por diante. O índice é utilizado para especificarmos o “apartamento”
onde guardaremos nossos dados.
Em um prédio de seis andares, teremos números de andar variando entre 0 e 5. Se chamarmos
nosso prédio de P, teremos P[0] como endereço do térreo, P[1] como endereço do primeiro andar,
continuando assim até P[5]. Em Python, P seria o nome da lista; e o número entre colchetes, o índice.
Listas são mais flexíveis que prédios e podem crescer ou diminuir com o tempo. Vejamos como
criar uma lista em Python:
L=[ ]
Essa linha cria uma lista chamada L com zero elemento, ou seja, uma lista vazia. Os colchetes
([ ]) após o símbolo de igualdade servem para indicar que L é uma lista. Vejamos agora como criar
uma lista Z, com 3 elementos:
Z= [15, 8, 9]
A lista Z foi criada com três elementos: 15, 8 e 9. Dizemos que o tamanho da lista Z é 3. Como
o primeiro elemento tem índice 0, temos que o último elemento é Z[2]. Veja o resultado de testes
com Z:
>>> Z= [15, 8, 9]
>>> Z[0]
15
>>> Z[1]
8
>>>Z[2]
9
Utilizando o nome da lista e um índice, podemos mudar o conteúdo de um elemento. Observe
os testes no interpretador:
>>> Z = [15, 8, 9)
>>> Z[0]
15
>>> Z[0] = 7
>>> Z[0)
7
>>> Z
4
[7, 8, 9]
Quando criamos a lista Z, o primeiro elemento era o número 15. Por isso, Z[0] era 15. Quando
executamos Z[0] = 7, alteramos o conteúdo do primeiro elemento para 7. Isso pode ser verificado
quando pedimos para exibir Z, agora com 7, 8 e 9 como elementos.
Veja que, ao modificarmos V, modificamos também o conteúdo de L. Isso porque uma lista em
Python é um objeto e, quando atribuímos um objeto a outro, estamos apenas copiando a mesma
referência da lista, e não seus dados em si. Nesse caso, V funciona como um apelido de L, ou seja,
V e L são a mesma lista. Vejamos o que acontece na figura a seguir.
Quando modificamos V[0], estamos modificando o mesmo valor de L[0], pois ambos são
referências, ou apelidos para a mesma lista na memória.
Dependendo da aplicação, esse efeito pode ser desejado ou não. Para criar uma cópia inde-
pendente de uma lista, utilizaremos outra sintaxe. Vejamos o resultado das operações:
>>> L= [1, 2, 3, 4, 5]
>>> V = L[ : ]
>>> V[0] = 6
>>> L
[1, 2, 3, 4, 5]
>>> V
PROGRAMAÇÃO PYTHON 5
[6, 2, 3, 4, 5]
Ao escrevermos L[:], estamos nos referindo a uma nova cópia de L. Assim L e V se referem a
áreas diferentes na memória, permitindo alterá-las de forma independente, como na figura a seguir:
TAMANHO DE LISTAS
Podemos usar a função len com listas. O valor retornado é igual ao número de elementos da
lista. Veja alguns testes:
>>> L = [12, 9, 5]
>>> len(L)
3
6
>>> V= [ ]
>>> len(V)
0
ADIÇÃO DE ELEMENTOS
Uma das principais vantagens de trabalharmos com listas é poder adicionar novos elementos
durante a execução do programa. Para adicionar um elemento ao fim da lista, utilizaremos o método
append. Em Python, chamamos um método escrevendo o nome dele após o nome do objeto. Como
listas são objetos, sendo L a lista, teremos L.append(valor). Métodos são recursos de orientação a
objetos, suportados e muito usados em Python. Você pode imaginar um método como uma função
do objeto. Quando invocado, ele já sabe a que objeto estamos nos referindo, pois o informamos à
esquerda do ponto. Vejamos um teste no interpretador:
>>> L = [ ]
>>> L.append(“a”)
[‘a’)
>>> L.append(“b”)
>>> L
[‘a’, ‘b’]
>>> L.append(“c”)
>>>L
[‘a’, ‘b’, ‘c’]
>>> len(L)
3
Outra forma de adicionar elementos a uma lista é utilizando o método insert. Nesse caso, esse
método adiciona um item na posição especificada. Vejamos o exemplo a seguir:
IMPORTANTE
L.insert(i,x)
onde:
i=índice;
x=item.
>>>L[8,4,6]
>>>L
[8,4,6]
>>>L.insert(1,7)
>>>L
[8,7,4,6]
PROGRAMAÇÃO PYTHON 7
Além dos métodos anteriores, é possível remover elementos de uma lista utilizando o método
remove. Nesse caso, em vez de informar o índice a ser excluído, informaremos diretamente o ele-
mento a ser excluído. Vejamos os exemplos a seguir:
>>>L = [6, 8, 1, 0, 3, 2, 7]
>>>L.remove(2)
>>>L
[6, 8, 1, 0, 3, 7]
PROGRAMAÇÃO
PYTHON
SUMÁRIO
PROGRAMAÇÃO PYTHON��������������������������������������������������������������������������������������� 3
FOR���������������������������������������������������������������������������������������������������������������������������������������������� 3
RANGE�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3
PROGRAMAÇÃO PYTHON 3
PROGRAMAÇÃO PYTHON
FOR
A linguagem Python apresenta uma estrutura de repetição especialmente projetada para
percorrer listas. A instrução for funciona de forma parecida a while, mas a cada repetição utiliza
um elemento diferente da lista.
A cada repetição, o próximo elemento da lista é utilizado, o que se repete até o fim da lista.
Vamos escrever um programa que utilize for para imprimir todos os elementos de uma lista:
RANGE
Podemos utilizar a função range para gerar listas simples. A função range não retorna uma
lista propriamente dita, mas um gerador.
Vejamos um exemplo:
7
Se acrescentarmos um terceiro parâmetro à função range, teremos como saltar entre os valores
gerados, por exemplo, range (0,10,2) gera os pares entre 0 e 10, pois começa de zero e adiciona 2
a cada elemento. Vejamos um exemplo em que geramos os 10 primeiros múltiplos de 3:
A sintaxe do programa está correta e, quando executado, ele apresentará o seguinte resultado.
PF
GABARITO: CERTO
PROGRAMAÇÃO PYTHON 5
Embora a instrução for facilite nosso trabalho, ela não substitui completamente while. Dependendo do pro-
blema, utilizaremos for ou while. Normalmente utilizaremos for quando quisermos processar os elementos de
uma lista, um a um. while é indicado para repetições nas quais não sabemos ainda quantas vezes vamos repetir
ou onde manipulamos os índices de forma não sequencial.
PROGRAMAÇÃO
PYTHON
SUMÁRIO
PROGRAMAÇÃO PYTHON��������������������������������������������������������������������������������������� 3
TUPLA����������������������������������������������������������������������������������������������������������������������������������������� 3
PROGRAMAÇÃO PYTHON 3
PROGRAMAÇÃO PYTHON
TUPLA
Tuplas podem ser vistas como listas em Python, com a grande diferença de serem imutáveis.
Tuplas são ideais para representar listas de valores constantes e para realizar operações de empa-
cotamento e desempacotamento de valores. Primeiro, vejamos como criar uma tupla.
Tuplas são criadas de forma semelhante às listas, mas utilizamos parênteses em vez de col-
chetes. Por exemplo:
>>> a=(“a”,”b”,3)
>>> a
(‘a’, ‘b’, 3)
Os parênteses são opcionais, porém sua utilização aumenta a clareza da expressão em si,
uma vez que visualizar a vírgula pode não ser tão fácil. Você poderia criar a mesma tupla usando
a sintaxe seguinte:
>>> a=”a”,”b”,3
>>> a
(‘a’, ‘b’, 3)
>>> type(a)
<class ‘tuple’>
Tuplas suportam a maior parte das operações de lista, como fatiamento e indexação:
>>> a=”p”,”f”,”concurso”,9,4
>>> len(a)
5
>>> a[0]
‘p’
>>> a[4]
4
>>> a[1:]
(‘f’, ‘concurso’, 9, 4)
>>> a[:4]
(‘p’, ‘f’, ‘concurso’, 9)
>>> a*2
(‘p’, ‘f’, ‘concurso’, 9, 4, ‘p’, ‘f’, ‘concurso’, 9, 4)
Tuplas também podem ser criadas a partir de listas, utilizando-se a função tuple:
>>> L = [1, 2, 3]
>>> T = tuple(L)
>>> T
(1, 2, 3)
4
Embora não possamos alterar uma tupla depois de sua criação, podemos concatená-las,
gerando novas tuplas:
>>> t1 = (1, 2, 3)
>>> t2 = (4, 5, 6)
>>> t1 + t2
(1, 2, 3, 4, 5, 6)
Observe que, se uma tupla contiver uma lista ou outro objeto que pode ser alterado, este
continuará a funcionar normalmente. Veja o exemplo de uma tupla que contém uma lista:
>>> tupla = (“a”, [“b”, “c”, “d”])
>>> tupla
(‘a’, [‘b’, ‘c’, ‘d’])
>>> len(tupla)
2
>>> tupla[1]
[‘b’, ‘c’,’d’]
>>> tupla[1].append(“e”)
>>> tupla
(‘a’, [‘b’, ‘c’, ‘d’, ‘e’])
Nesse caso, nada mudou na tupla em si, mas na lista que é seu segundo ele mento. Ou seja,
a tupla não foi alterada, mas a lista que ela continha sim.
PROGRAMAÇÃO
PYTHON
SUMÁRIO
PROGRAMAÇÃO PYTHON��������������������������������������������������������������������������������������� 3
DICIONÁRIOS�������������������������������������������������������������������������������������������������������������������������������� 3
DICIONÁRIOS COM LISTAS������������������������������������������������������������������������������������������������������������������������������������������������3
PROGRAMAÇÃO PYTHON 3
PROGRAMAÇÃO PYTHON
DICIONÁRIOS
Dicionários consistem em uma estrutura de dados similar às listas, mas com propriedades de
acesso diferentes. Um dicionário é composto de um conjunto de chaves e valores. O dicionário em
si consiste em relacionar uma chave a um valor específico.
Em Python, criamos dicionários utilizando chaves ({ }). Cada elemento do dicionário é uma
combinação de chave e valor.
Um dicionário é acessado por suas chaves. Para obter o número de questões de Informática,
digite no interpretador, depois de ter criado a tabela, tabela[“Informática”], em que tabela é o nome
da variável do tipo dicionário, e “Informática” é a nossa chave. O valor retornado é o mesmo que
associamos na tabela, ou seja, 36.
Diferentemente das listas, em que o índice é um número, dicionários utilizam suas chaves
como índice. Quando atribuímos um valor a uma chave, duas coisas podem ocorrer:
1. Se a chave já existe: o valor associado é alterado para o novo valor.
2. Se a chave não existe: a nova chave será adicionada ao dicionário.
>>> tabela[“Estatística”]=10
>>> tabela
{‘Informática’: 36, ‘Contabilidade’: 24, ‘Português’: 24, ‘Direito Penal’: 4, ‘Estatística’: 10}
>>> tabela[“Português”]=20
>>> tabela
{‘Informática’: 36, ‘Contabilidade’: 24, ‘Português’: 20, ‘Direito Penal’: 4, ‘Estatística’: 10}
>>> concurso
4
{‘Português’: [24, 1], ‘Direito Penal’: [4, 1], ‘Contabilidade’: [24, 2], ‘Informática’: [36, 3]}
Nesse caso, o nome da disciplina é a chave, e a lista consiste nos valores associados, uma lista
por chave. O primeiro elemento da lista é a quantidade de questões, e o segundo, o peso de cada
disciplina. Para alterar valores da lista, basta utilizar a sintaxe:
concurso[‘Informática’][1]=1000
>>> concurso
{‘Português’: [24, 1], ‘Direito Penal’: [4, 1], ‘Contabilidade’: [24, 2], ‘Informática’: [36, 1000]}
PROGRAMAÇÃO
PYTHON
SUMÁRIO
PROGRAMAÇÃO PYTHON��������������������������������������������������������������������������������������� 3
CONJUNTOS��������������������������������������������������������������������������������������������������������������������������������� 3
CRIANDO UM CONJUNTO (SET) A PARTIR DE UMA LISTA�����������������������������������������������������������������������������������������������3
CRIANDO UM CONJUNTO (SET) A PARTIR DE UMA TUPLA���������������������������������������������������������������������������������������������3
CRIANDO UM CONJUNTO (SET) VAZIO������������������������������������������������������������������������������������������������������������������������������3
ADICIONANDO ELEMENTOS����������������������������������������������������������������������������������������������������������������������������������������������4
REMOVENDO ELEMENTOS DE UM CONJUNTO�����������������������������������������������������������������������������������������������������������������4
OPERAÇÕES MATEMÁTICAS COM CONJUNTOS���������������������������������������������������������������������������������� 5
UNIÃO��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������5
INTERSECÇÃO�������������������������������������������������������������������������������������������������������������������������������������������������������������������5
DIFERENÇA�����������������������������������������������������������������������������������������������������������������������������������������������������������������������5
DIFERENÇA SIMÉTRICA����������������������������������������������������������������������������������������������������������������������������������������������������6
PROGRAMAÇÃO PYTHON 3
PROGRAMAÇÃO PYTHON
CONJUNTOS
Conjunto, set em Python, é uma estrutura de dados que implementa operações de união, inter-
secção e diferença, entre outras. A principal característica dessa estrutura de dados é não admitir
repetição de elementos. Outra característica importante é que conjuntos não mantém a ordem de
seus elementos, ou seja, não suportam indexação. Vejamos algumas operações com conjuntos.
ATENÇÃO – set ( ) é a notação utilizada na linguagem Python para indicar um conjunto vazio. Nesse caso, preci-
samos tomar cuidado porque é muito comum achar que um conjunto vazio seria apresentado como {}. Porém, {}
é a notação utilizada para representar um dicionário vazio. Portanto, para evitar confusão, o Python representa o
conjunto vazio por set ( ) em vez de {}. Vejamos um exemplo de dicionário vazio:
>>> a= dict()
>>> a
{}
4
ADICIONANDO ELEMENTOS
Para adicionar elementos a um set (conjunto), utilizaremos a função add. Vejamos alguns exemplos.
>>> alfa=set()
>>> alfa.add(3)
>>> alfa.add(1)
>>> alfa.add(7)
>>> alfa
{1, 3, 7}
>>> alfa.add(3)
>>> alfa
{1, 3, 7}
No exemplo, veja que, ao adicionarmos 3 pela segunda vez, nada alteramos no conjunto em si, uma
vez que 3 já fazia parte do conjunto.
>>> alfa.add(0)
>>> alfa.add(-1)
>>> alfa
{0, 1, 3, 7, -1}
IMPORTANTE – Conjunto é uma estrutura de dados que não aceita repetição de elementos.
Podemos testar se um elemento faz parte de um conjunto usando o operador in do Python:
>>> alfa
{0, 1, 3, 7, -1}
>>> 1 in alfa
True
>>> -4 in alfa
False
Função remove
>>> a
{5, 6, 9}
>>> a=set([1,5,6,1,9,1,5])
>>> a.remove(7)
>>> a.remove(1)
Traceback (most recent call last):
>>> a
File “<pyshell#18>”, line 1, in <module>
{5, 6, 9}
a.remove(7)
KeyError: 7
PROGRAMAÇÃO PYTHON 5
ATENÇÃO - A função remove deve ser usada somente se tivermos certeza que o elemento está presente no
conjunto, pois se o elemento não estiver presente, a função remove retornará um erro.
Caso não tenha certeza se o elemento está presente no conjunto, devemos utilizar a função
discard. Sendo assim, caso o elemento esteja presente, ele será removido, porém, caso o elemento
não faça parte do conjunto nada irá acontecer. Além disso, é possível remover todos os elementos
de um conjunto de uma só vez. Para isso, utilizaremos a função clear. Vejamos alguns exemplos.
>>> alfa
{0, 1, 3, 7, -1}
>>> alfa
>>> alfa.discard(3)
{0, 1, 7, -1}
>>> alfa
>>> alfa.clear( )
{0, 1, 7, -1}
>>> alfa
>>> alfa.discard(10)
set( )
>>> alfa
{0, 1, 7, -1}
INTERSECÇÃO
Outra operação comum em conjuntos é a intersecção, que nos retorna os elementos que aparecem
em ambos conjuntos. Nesse caso, podemos utilizar o operador & ou a função intersect.
DIFERENÇA
Entre as operações disponíveis com conjuntos, temos, a diferença entre conjuntos, que utiliza o
operador -.
6
>>> a={0,1,2,3,4,5,6}
>>> b={0,2,4,6,8,9,1}
>>> a-b
{3, 5}
>>> b-a
{8, 9}
DIFERENÇA SIMÉTRICA
A diferença simétrica entre dois conjuntos A e B é composto dos elementos que pertencem somente
a A e somente a B. Nesse caso, podemos utilizar o operador ^ ou a função symmetric_difference.
LINGUAGEM DE PROGRAMAÇÃO R
INTRODUÇÃO
O uso de pacotes estatísticos para a análise de dados é de grande importância no que se refere
à análise e a interpretação de resultados. Contudo observa-se que estes apresentam um custo de
aquisição relativamente elevado, ou a criação de programas de alternativos. Dentre os softwares
de domínio público, livres, que podem ser utilizados para análise de dados em geral, encontra-se
o Ambiente R, ou simplesmente R, conforme usualmente chamado pelos seus usuários, apresenta
código fonte aberto, podendo ser modificado ou implementado com novos procedimentos desen-
volvidos por qualquer usuário a qualquer momento.
O R torna-se, portanto, uma importante ferramenta na análise e na manipulação de dados,
com testes paramétricos e não paramétricos, modelagem linear e não linear, análise de séries tem-
porais, análise de sobrevivência, simulação e estatística espacial, entre outros, além de apresentar
facilidade na elaboração de diversos tipos de gráficos, no qual o usuário tem pleno controle sobre
o gráfico criado.
O R pode ser obtido gratuitamente em http://cran.r-project.org, onde é apresentado em ver-
sões de acordo com o sistema operacional Linux, Windows ou Mac. Além disso, encontra-se neste
site mais informação sobre a sua utilização e uma central de correspondências onde profissionais
de várias áreas do conhecimento podem contribuir na implementação de novos recursos assim
como responder a dúvidas dos demais usuários.
Como o R é uma linguagem de programação orientada a objetos o usuário pode criar suas
próprias funções, e sua própria rotina na análise de dados. Outro atributo do R é sua capacidade
de interagir com outros programas estatísticos, bem como de banco de dados.
Além dos procedimentos estatísticos o R permite operações matemáticas simples, e manipu-
lação de vetores e matrizes. Assim como confecção de diversos tipos de gráficos.
INICIANDO O R
Com o R iniciado você verá o símbolo “>” em vermelho, que é o prompt do R (conhecido tam-
bém como R Console) indicando que o sistema está pronto para receber seus comandos. Acima do
prompt em cor azul encontram-se algumas informações sobre o sistema e alguns comandos básicos.
4
OPERAÇÕES ARITMÉTICAS
Você pode utilizar o R como uma calculadora. A tabela a seguir apresenta os operadores arit-
méticos que podem ser utilizados.
OPERADORES ARITMÉTICOS
OPERADORES DE COMPARAÇÃO
Operador Significado
== Igual a
!= Diferente de
< Menor que
> Maior que
<= Menor ou igual a
>= Maior ou igual a
LINGUAGEM DE
PROGRAMAÇÃO R
SUMÁRIO
LINGUAGEM DE PROGRAMAÇÃO R
TRABALHANDO COM OBJETOS
Objetos são entidades lógicas que podem ser usadas pelo programa R para armazenar valores,
ou seja, um objeto é um espaço na memória do computador que pode ser utilizado para armazenar
dados.
CRIANDO OBJETOS
Um objeto pode ser criado com a operação de “atribuição”, o qual se denota como uma flecha,
com o sinal de menos e o símbolo “>” ou “<”, dependendo da direção em que se atribui o objeto,
ou com um único sinal de igual.
É importante dizer que o nome de um objeto pode começar com uma letra qualquer, maiúscula
ou minúscula, que pode ser seguida de outra letra, número, ponto (.) ou sublinhado (_).
O R é case-sensitive, portanto:
dados ≠ Dados ≠ DADOS
TIPOS DE DADOS
Os objetos podem receber alguns tipos de dados:
ͫ Numeric: quando seu valor é um número real.
ͫ Interger: quando seu valor é inteiro. O caractere L após um número indica ao R que o
número deve ser registrado como inteiro.
ͫ Character: quando seu valor é texto.
ͫ Complex: quando seu valor é um número complexo.
4
LISTANDO OBJETOS
A função ls() mostra os objetos criados até o momento.
APAGANDO OBJETOS
É possível apagar objetos com o uso do rm ou remove.
LINGUAGEM DE PROGRAMAÇÃO R 5
Além disso, é possível apagar todos os objetos de uma só vez. Nesse caso, podemos utilizar:
rm(list=ls()) ou remove(list=ls()).
LINGUAGEM DE
PROGRAMAÇÃO R
SUMÁRIO
LINGUAGEM DE PROGRAMAÇÃO R
TIPOS DE OBJETOS
VETOR
Os vetores recebem vários valores em uma única sequência (uma linha), ou seja, uma estru-
tura unidimensional. Nesse caso, os vetores são objetos que admitem armazenar vários valores
diferentes. Porém, todos de um mesmo tipo. A função c é utilizada para criar um vetor.
INDEXANDO VETORES
Uma vez que aprendemos como criar vetores, chegou o momento de aprendermos a mani-
pulá-los e a realizar algumas operações. Vamos começar criando um vetor com cinco elementos
numéricos e depois realizaremos algumas operações.
Uma vez que temos nosso vetor v, podemos recuperar todos os valores de uma só vez ou
apenas um ou alguns componentes desejados. A posição inicial de um vetor no R possui valor 1
e segue da esquerda para a direita. Portanto, se quisermos obter o valor contido na posição 2 do
nosso vetor v, usamos a seguinte notação: v[2]. Vejamos:
Para exibirmos todos os componentes do vetor exceto o de uma determinada posição, utili-
zamos o sinal - ao indexar o nosso vetor. O exemplo seguinte selecionará todos os elementos do
nosso vetor v, exceto o elemento da posição 4.
É possível indexar apenas algumas posições específicas, por exemplo, 2 e 5. Nesse caso, uti-
lizaremos a sintaxe:
ADICIONANDO VALORES
Para adicionar valores ao vetor, é possível utilizar a função append. Vejamos os exemplos a
seguir:
LINGUAGEM DE PROGRAMAÇÃO R 5
LINGUAGEM DE
PROGRAMAÇÃO R
SUMÁRIO
LINGUAGEM DE PROGRAMAÇÃO R
FUNÇÕES
Funções são trechos de programas que realizam ações e que retornam, normalmente,
resultados.
Funções são escritas assim: nome(argumentos)
ͫ sqrt função utilizada para calcular a raiz quadrada.
Criação de Sequências
Para criar vetores de números com intervalo fixo unitário (intervalo de 1) se utiliza o operador
sequencial (:):
ͫ Função seq
ͫ Função rep
Também é fácil criar uma sequência de números repetidos utilizando a função ‘rep’:
4
ͫ Função “length“
A função length retorna o número de elementos de um objeto:
ͫ Função Sample
A função sample é utilizada para realizar amostras aleatórias e funciona assim:
ͫ sample(x, size=1, replace = FALSE)
# em que x é o conjunto de dados do qual as amostras serão retiradas, size é o número de
amostras e replace é onde você indica se a amostra deve ser feita com reposição (TRUE) ou sem
reposição (FALSE).
LINGUAGEM DE
PROGRAMAÇÃO R
SUMÁRIO
LINGUAGEM DE PROGRAMAÇÃO R
LISTAS
Lista é um tipo de objeto que admite armazenar vários valores diferentes, mesmo de tipos
diferentes. As listas permitem combinar diferentes tipos de objetos em um mesmo objeto. Esses
objetos podem ser vetores, matrizes, números e/ou caracteres e até mesmo outras listas.
ͫ Listas são construídas com a função list().
Os componentes da lista são introduzidos usando a forma usual (nome = argumento) de atribuir
argumentos em uma função. Quando você digita o nome de um objeto que é uma lista cada compo-
nente é mostrado com seu nome e valor. Cada um desses componentes da lista pode ser acessado
individualmente por seu nome antecedido pelo símbolo “$”:
CONDIÇÕES
IF & ELSE
A estrutura condicional é algo bastante intuitivo. A estrutura de if (se) e else (então) usa os ope-
radores lógicos apresentados anteriormente. Se a condição do if() for verdadeira, executa-se uma
tarefa específica, se for falsa, executa-se uma tarefa diferente.
4
if (condição) {
ações a serem realizadas se a condição for verdadeira
} else {
ações a serem realizadas se a condição for falsa
}
Considere o programa a seguir, escrito em R.
a<-TRUE
b<-FALSE
if (a&!b){
print(“concurso”)
}else{
print(“pf”)
}
Após a execução do programa, será obtido o seguinte resultado.
[1] “pf”
GABARITO: ERRADO
Considere o programa a seguir, escrito em R.
a<-c(4,6,9)
c(3,2,7)->b
if (a[3]>b[1]){
print(a[-2])
}else{
b[-1]
}
Após a execução do programa, será obtido o seguinte resultado.
[1] 4 9
GABARITO: CERTO
LINGUAGEM DE
PROGRAMAÇÃO R
SUMÁRIO
LINGUAGEM DE PROGRAMAÇÃO R
ESTRUTURAS DE REPETIÇÃO
Reescrever o seu código muitas vezes por precisar de repetições seria bastante trabalhoso,
além de precisarmos de mais tempo para isso. Por isso, o R tem algumas funções que fazem essas
repetições para nós. Aqui vamos falar das funções for () e while (). Além de fazerem repetições de
código, eles possuem a estrutura parecida na forma de escrever: nas duas funções, os comandos
a serem repetidos devem vir entre chaves.
FOR( )
Função que repete o código seguinte para o comprimento da sequência indicada entre parênteses.
Sintaxe:
for (variável in sequência) {
Comandos a serem repetidos
}
Exemplo:
for (i in 1:10) {
print (i)
}
Considere o programa a seguir, escrito em R.
a<-seq(1,12,3)
for (x in a){
print(x*2)
}
Após a execução do programa, será obtido o seguinte resultado.
[1] 2
[1] 8
[1] 14
[1] 20
GABARITO: CERTO
WHILE()
A tradução desta função nos ajuda a entendê-la mais: while significa enquanto. Então podemos
ler essa função como: Enquanto alguma condição for verdadeira, o código abaixo será repetido.
4
Sintaxe:
while (condição){
comandos a serem repetidos
}
Exemplo:
a=1
while (a <=10 ) {
print (a)
a=a+1
}
Considere o programa a seguir, escrito em R.
a=3
while (a <=10 ) {
a=a+2
if (a!=9-2){
print(a)
}
}
Após a execução do programa, será obtido o seguinte resultado.
[1] 5
[1] 7
[1] 9
GABARITO: ERRADO
LINGUAGEM DE
PROGRAMAÇÃO R
SUMÁRIO
LINGUAGEM DE PROGRAMAÇÃO R
MATRIZ
São objetos que admitem armazenar vários valores diferentes em várias linhas e colunas.
Porém, todos de um mesmo tipo. A função matrix cria uma matriz com os valores do argumento.
Os argumentos nrow e ncol são utilizados para definir a quantidade de linhas e colunas da matriz.
DATAFRAME
O mesmo que uma matriz, mas aceita valores de tipos diferentes (numérico e caracteres). A
função para criar um dataframe é: data.frame( ).
LINGUAGEM DE PROGRAMAÇÃO R 5
LINGUAGEM DE PROGRAMAÇÃO R
FUNÇÕES
ͫ mean – função utilizada para calcular a média aritmética.
ͫ
ͫ median – função utilizada para calcular a mediana.
ͫ
ͫ max – função utilizada para retornar o maior valor de um conjunto de dados.
ͫ
ͫ min – função utilizada para retornar o menor valor de um conjunto de dados.
ͫ
ͫ sum – função utilizada para somar valores de um conjunto de dados.
ͫ
Considere o programa a seguir, escrito em R.
a<-c(7,30,1,0,9,5,100,2)
4
b<-matrix(a,ncol=2)
c<-b[2,1]
d<-b[4,2]
e=c(c,d)
print(mean(e))
Após a execução do programa, será obtido o seguinte resultado.
[1] 17.5
GABARITO: ERRADO
GRÁFICOS DE BARRAS
O gráfico de barras é composto por duas linhas ou eixos, um vertical e outro horizontal. No
eixo vertical são construídas as barras que representam a variação de um fenômeno ou de um
processo de acordo com sua intensidade. Essa intensidade é indicada pela altura da barra. No eixo
horizontal especifica-se as categorias da variável. As barras devem sempre possuir a mesma largura
e a distância entre elas deve ser constante. Veja a seguir como construir este tipo de gráfico no R.
ͫ Para fazer gráficos de barras no R a função é barplot.
Estatística de Drogas Apreendidas
Cocaína (cloridrato, crack e pasta base) – kg
LINGUAGEM DE PROGRAMAÇÃO R 5
GRÁFICOS DE PIZZA
Os gráficos de torta (ou pizza) são representados por círculos divididos proporcionalmente de
acordo com os dados do fenômeno ou do processo a ser representado. Veja a seguir como construir
este tipo de gráfico no R.
ͫ Para fazer gráficos de pizza no R a função é pie.
LINGUAGEM DE PROGRAMAÇÃO R 7
Exemplo 2:
Exemplo 3:
LINGUAGEM DE PROGRAMAÇÃO R 9
Exemplo 4: