Você está na página 1de 506

Técnico em Desenvolvimento

de Sistemas
Módulo Programação
de Sistemas
Disciplina:
Fundamentos de Programação
Fundamentos de Programação

Introdução
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Introdução

A linguagem de programação
é um conjunto de instruções
direcionadas à um computador.

Podemos considerar que linguagem


de programação é um método
sofisticado, robusto e objetivo de um
computador executar uma ou mais
tarefas

5
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução

É mediante à estes códigos que


os programadores podem
A linguagem de programação
definir os dados de maior
cria um conjunto de regras e
caminhos por onde o computador
relevância, as formas de
deverá seguir a fim de alcançar um transmissão destes dados,
objetivo definido pelo programa. forma de conduzir o
recebimento, como os dados
serão processados e qual
resultado deverá ser obtido.

6
Fundamentos de Programação

Introdução
O grande desafio dos programadores Na década de 1940, os primeiros
é conceber uma sintaxe que seja, computadores elétricos foram
leve, intuitiva e preferencialmente criados, necessitando a criação
limpa, ou seja, com códigos claros e das primeiras linguagens.
objetivos.
Como os dispositivos de
armazenamento ainda eram
precários, exigia-se códigos de
programação complexos, que
ficaram conhecidos como
linguagem de máquina.

7
Imagem: https://pixabay.com/pt/vectors/codifica%c3%a7%c3%a3o-computador-1294361/
Fundamentos de Programação

Introdução
Nesta mesma década tivemos ainda
a criação do Plankalkül por Korand
Assembly Suze, ENIAC code System que foi
a linguagem do primeiro
computador digital o ENIAC.
A primeira linguagem de
máquina que foi trabalhada foi o
Assembly, com está linguagem
Na década de 50, Grace Hopper, que
foi possível programar estes
nesta época era programadora na
grandes computadores.
marinha americana, desenvolveu o A-10,
uma linguagem de alto nível criada para
Mais ainda se trabalhava a nível
o computador UNIVAC.
de máquina.

8
Fundamentos de Programação

Introdução

Outras linguagens surgiram nesta


mesma época, as principais foram o Nesta mesma década
ALGOL, FORTRAN e o COBOL.
tivemos ainda a criação
Na mesma época surgiu a Lips, do Plankalkül por Korand
linguagem que foi um marco na Suze, ENIAC code System
pesquisa de computadores em ênfase
à inteligência artificial.
que foi a linguagem do
primeiro computador
Seguindo a mesma linha de digital o ENIAC.
pensamento, surge na década de 1970
a linguagem Proglog.
9
Fundamentos de Programação

Introdução
À orientação à objeto também é
considerado um marco na história das
linguagens de programação.

A linguagem Simula 67 (extensão do ALGOL)


introduziu o conceito de classes, logo após
surgiu a Smalltalk, está linguagem aprofundou
o conceito de orientação à objeto, sendo a
primeira linguagem completa neste quesito.

Posteriormente a linguagem C++ popularizou


o conceito de classes.

10
Imagem: https://pixabay.com/pt/photos/designer-de-web-design-do-site-1953129/
Fundamentos de Programação

Introdução

A partir dos processadores e da expansão


da memória, novas linguagens de
programação foram surgindo, e desta
forma, a linguagem contribuiu para à
expansão da evolução humana,
transformando o raciocínio lógico em
algo palpável e produtivo, e desta forma,
tornando à informática algo fundamental
para a sociedade moderna.

11
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação
• C
Introdução • C#
• C++
• Java
Existem milhares de linguagens de • JavaScript
programação, dentre delas, destacamos • Perl
algumas linguagens de programação: • PHP
• PL/SQL
• Portugol
• Python
• Ruby
• Scratch
• Swift
• Visual Basic
• Entre outras...
12
Imagem: https://pixabay.com/pt/illustrations/rede-desenvolvedor-web-1935737/
Fundamentos de Programação

Introdução
Linguagem de Programação de
Níveis de Programação ALTO NÍVEL

Linguagem de Programação de É uma linguagem mais estruturada, que


BAIXO NÍVEL não trabalha no nível da arquitetura do
computador, este formato trabalha com
códigos fontes, convertendo o código
Esta linguagem trabalha no nível da para código de máquina utilizando os
arquitetura do hardware, nível de interpretadores e compiladores.
programação trabalha diretamente com
os registradores e processadores e Este tipo de linguagem se assemelha
chegam a utilizar editores de base com a linguagem humana.
hexadecimal.
13
Fundamentos de Programação

Introdução
Interpretadores e
Um compilador basicamente,
Compiladores traduz o programa para código
de máquina, uma vez
Todas os códigos de programação compilado, o programa não
podem ser convertidos a código de mais estará em formato de
máquina por compiladores ou
“edição” ele já se torna algo
interpretados por interpretadores.
existente dentro do sistema em
Esta tradução transforma o código fonte que o mesmo está inserido.
em código de máquina.

14
Fundamentos de Programação

Introdução
• Linguagens aplicativas, ou de aplicação;
Classificação das • Linguagens concorrentes, distribuídas e
Linguagens de paralelas;
• Linguagens de altíssimo nível;
Programação • Linguagens de aplicação especializada;
• Linguagens de fluxo de dados;
• Linguagens de micro programação;
A ACM (Association for Computing • Linguagens de montagem e de macro;
Machinery) classifica as linguagens • Linguagens de projeto;
de programação em vários tipos, • Linguagens extensíveis;
buscando padronizar seu uso e suas • Linguagens não determinísticas;
aplicações, são elas: • Linguagens não procedurais;
• Linguagens orientadas a objeto.
15
Fundamentos de Programação

Introdução
Conceito de Programação

Apesar de todas as linguagens de


programação em teoria alcançar 1. Programação Estruturada;
o mesmo objetivo lógico, existem 2. Programação Linear;
conceitos para cada tipo de 3. Programação Modular;
programação, estruturamos as 4. Programação Orientada a Eventos;
linguagens em categorias 5. Programação Orientada a Objeto.
maiores e gerais para organizar
seus conceitos, são elas:

16
Fundamentos de Programação

Introdução
1. Programação Estruturada
A programação estruturada foi a Este conceito orientava os
percursora da estruturação da programadores a usarem códigos
linguagem de programação, ela simples, usando de funções e
divide em três partes. sub-rotinas em sua criação.

17
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução
2. Programação Linear
A programação linear é focada
em otimizações e soluções de
problemas de programação, este Historicamente a programação
tipo de programação utiliza uma linear apresenta resoluções
estrutura matemática para
como dualidade, decomposição,
buscar resoluções.
e a importância da convexidade
e suas generalizações.

18
Fundamentos de Programação

Introdução
3. Programação Modular
A programação modular apresenta o
conceito de estruturar um programa por
módulos relacionados e interdependentes
através de uma interface em comum.

Este tipo de linguagem rapidamente


substituiu a linguagem estruturada, pois
ela apresenta algo mais robusto e
confiável.

19
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução
4. Programação
Orientada a Eventos
Diferente de programas normais que
seguem um fluxo de controle padronizado,
os controles de fluxo de programas
orientados a evento são guiados por ações
externas, chamadas eventos.

Sua aplicação é grande no desenvolvimento


de sistemas de interface com o usuário.

20
Imagem: https://pixabay.com/pt/illustrations/internet-meios-de-comunica%c3%a7%c3%a3o-sociais-4463031/
Fundamentos de Programação

Introdução
5. Programação
Orientada a Objetos
Visa não apenas estruturar o código em Este método de programação
classes ou em módulos, este tipo de deu origem a diversas
programação traz um grande paradigma, interpretações semânticas da
apresentando o desafio de implementar
inteligência artificial, atribuindo
um código e potencializar sua atuação.
atributos e definindo métodos
Unindo diversas composições e interações entre seus objetos.
de códigos, o que conhecemos por
objetos.
21
Fundamentos de Programação

Introdução
5. Programação
Orientada a Objetos

A programação orientada a
objeto é estruturada em 5 bases
fundamentais.

Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas


Fundamentos de Programação

Introdução
Conceito de Lógica
É um conjunto ordenado de
instruções visando alcançar um
objetivo, sistematizando todas as
suas etapas em sequência, a fim
de organizar um pensamento, e
desta forma, alcançar a solução
de uma problemática.

23
Imagem: https://pixabay.com/pt/illustrations/homem-cabe%c3%a7a-silhueta-tingir-3591573/
Fundamentos de Programação

Introdução
Linguagens Web
As linguagens de programação web
ou conhecidas como linguagem de
As principais ferramentas para
marcação, são utilizadas para o
desenvolvimento web são:
desenvolvimento de páginas e
sistemas que são atrelados à internet,
estas linguagens permitem a criação • HTML;
de uma estrutura que faz a
comunicação entre os usuários de
• CSS;
internet e bases de dados locais. • JavaScript.
24
Imagem: https://pixabay.com/pt/illustrations/local-na-rede-internet-responsivo-3374825/
Fundamentos de Programação

Introdução

ATIVIDADE

25
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 01
Introdução a Lógica de Programação
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Introdução a Lógica de Programação

A lógica permite que utilizemos o


pensamento da melhor forma
possível, a fim de encontrar uma
solução para um determinado
problema.

27
Imagem: https://pixabay.com/pt/illustrations/intelig%c3%aancia-artificial-c%c3%a9rebro-3382507/
Fundamentos de Programação

Introdução a Lógica de Programação

No início da era dos computadores, os


programadores necessitavam
programar diretamente em linguagem
de máquina, ou seja, utilizavam
números binários para programar.

Como existia uma grande dificuldade


para se programar, criou-se uma
linguagem próxima do entendimento
humano chamada de Assembly
(montagem).
28
Imagem: https://pixabay.com/pt/illustrations/local-na-rede-internet-responsivo-3374825/
Fundamentos de Programação

Introdução a Lógica de Programação

Exemplo de um programa desenvolvido


em Assembly que mostra na tela a frase
“Hello World”.

Com o passar do tempo, surgiram


linguagens de alto nível, ou seja, cuja
linguagem se aproxima da linguagem
humana. Para citar algumas temos:
Pascal, BASIC e C (também considerada
de médio nível).

29
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação

Portugol é uma pseudolinguagem


criada pelos professores Antônio Carlos
Nicolodi e Antônio Mannso em 1986.

É muito utilizado para o ensino de


lógica de programação nos países de
língua portuguesa.

30
Imagem: https://pixabay.com/pt/illustrations/brasil-bandeira-m%c3%a3o-paz-vit%c3%b3ria-641381/
Fundamentos de Programação

Introdução a Lógica de Programação

O código-fonte é o texto escrito


numa linguagem de programação.

Esse texto segue as regras impostas


pela linguagem, como sintaxe dos
comandos e funções.

31
Imagem: https://pixabay.com/pt/photos/desenvolvedor-de-software-6521720/
Fundamentos de Programação

Introdução a Lógica de Programação


Programas Executáveis
Trata-se de uma sequência de instruções em
linguagem de máquina (códigos binários)
inteligível ao computador e muito difícil (ou
quase impossível) de ser entendido por um
ser humano.

Esse programa é criado por dois processos


diferentes: interpretação e compilação.

32
Imagem: https://pixabay.com/pt/photos/desenvolvedor-de-software-6521720/
Fundamentos de Programação

Introdução a Lógica de Programação


Programas Executáveis
1. Interpretação
A conversão é efetuada por um
programa escrito totalmente em
O código-fonte do programa é convertido linguagem de máquina e
em linguagem de máquina à medida que o denominado interpretador.
programa é executado.
Ele lê o código-fonte linha por linha
A linguagem de máquina é a única que o e decodifica para que possa ser
computador realmente entende, já que ela executado pelo microprocessador.
é a combinação de 0 e 1.

33
Fundamentos de Programação

Introdução a Lógica de Programação


Programas Executáveis
2. Compilação

Já em programas compilados, o código-


fonte é inteiramente convertido em
linguagem de máquina uma única vez.

O software que efetua essa conversão é


chamado de compilador.

34
Imagem: https://pixabay.com/pt/photos/desenvolvedor-de-software-6521720/
Fundamentos de Programação

Introdução a Lógica de Programação


Algoritmo

Um algoritmo, nada mais é do que um


conjunto de instruções, regras ou
comandos.

Os algoritmos ajudam a resolver


problemas, e para tanto é utilizada a lógica
para encontrar as soluções para esses
problemas.

35
Imagem: https://pixabay.com/pt/illustrations/bola-bin%c3%a1rio-dados-de-computador-63527/
Fundamentos de Programação

Introdução a Lógica de Programação


O VISUALG é um interpretador que
é utilizado para executar a
pseudolinguagem chamada de
Portugol.

Para utilizá-lo basta baixá-lo da


internet, não precisa fazer nenhuma
instalação.

Tela inicial do VISUALG, note que


todo novo arquivo já começa
previamente estruturado.
36
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação

Onde está escrito “semnome” será


onde colocaremos o nome do
algoritmo.
Entre “Inicio” e “Fimalgoritmo”,
É importante preencher os demais iremos escrever toda a parte lógica
campos (Disciplina, Professor, do algoritmo (programa),
Descrição, Autor, Data atual), para a essas tags servem para indicar ao
devida documentação do programa. VisuALG onde começa e onde
termina o algoritmo.
Onde está escrito Var, é onde iremos
declarar as variáveis do programa.

37
Fundamentos de Programação

Introdução a Lógica de Programação


Exemplo 1:
Utilizando o comando “escreva”

Passo 1: Conforme o exemplo,


na linha 1 após a tag Algoritmo
escreva “Saudacao”

Passo 2: Utilize o comando


escreva (“Olá Mundo!”) após a
tag Início, conforme a linha 13

Pressionando a tecla “F9”


ou indo em Run (executar)
=> Rodar o Algoritmo
38
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


Exemplo 2:
Utilizando o comando “escreval”
Pressionando a tecla “F9”
ou indo em Run (executar)
=> Rodar o Algoritmo

39
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


ATIVIDADES
1. O que são linguagens de programação?
2. O que significa dizer que uma linguagem é de baixo nível?
3. O que significa dizer que uma linguagem é de alto nível?
4. Pesquise e cite duas linguagens que são de baixo nível.
5. Pesquise e cite três linguagens de alto nível.
6. O que é o Portugol?
7. O que são programas executáveis?
8. Qual a diferença entre programas interpretadores e compiladores?
9. Qual a diferença entre os comandos escreva e escreval?
10. Defina código-fonte.

40
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Introdução a Lógica de Programação


ATIVIDADES
1. Desenvolva no VISUALG um algoritmo que irá mostrar um
ditado popular para o usuário.

O ditado popular do dia é:


“Um dia é da caça, outro é do caçador. ”

41
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Introdução a Lógica de Programação


ATIVIDADES Onion Rings (Cebola empanada)

INGREDIENTES:
1. Faça uma pesquisa de alguma 2 cebolas grandes cortadas em rodelas
receita de comida na internet e 1 xícara (chá) de farinha de trigo
faça um algoritmo no VISUALG que 1 colher (chá) de fermento químico
exiba esta receita para o usuário. 1 ovo
1 xícara (chá) de leite
Pitada de sal
Para empanar: Aproximadamente 1 xícara (chá)
de farinha de rosca
MODO DE PREPARO:
1-Misture a farinha, o fermento, o ovo, o leite e
o sal até formar uma massa homogênea.
2-Empane os anéis de cebola na massa, e depois
na farinha de rosca.
3-Frite em óleo quente até ficar dourado, na
sequência coloque no papel toalha. 42
Imagem: https://pixabay.com/pt/illustrations/monumento-
pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Introdução a Lógica de Programação

As variáveis são posições


reservados na memória do
computador para armazenar valores,
que podem ser números inteiros
(“1,30,50 etc.”), números reais (“10.5,
30.6, 100.50 etc.”), caracteres (letras e
palavras) ou lógicos (verdadeiro ou
falso) esses valores são armazenados
durante a execução do programa e
são descartados após o programa ser
fechado.

43
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação

Variáveis Locais Variáveis Globais


São variáveis utilizadas somente numa São variáveis que podem ser utilizadas
parte do algoritmo (em funções e por todo o algoritmo.
procedimentos), sendo assim a sua
utilização é mais limitada, porém
muito útil para evitar confusões.
Para saber qual tipo de variável
devemos utilizar dependerá da
utilidade que queremos dar para elas.

44
Fundamentos de Programação

Introdução a Lógica de Programação


Tipos de Variáveis 2. Números Reais
1. Números Inteiros As variáveis desse tipo esperam
A variável do tipo inteiro irá armazenar números que possuem
armazenar números que não possuem casas decimais após a vírgula.
casa decimal.

45
Fundamentos de Programação

Introdução a Lógica de Programação


3. Lógicos
A variável do tipo lógico deverá receber
apenas “verdadeiro” ou “falso”.
Lógico ou booleano =>verdadeiro ou falso

46
Fundamentos de Programação

Introdução a Lógica de Programação

4. Caracter
As variáveis do tipo caractere, Números também podem ser armazenados
deverão armazenar somente nelas, porém serão interpretados como
letras e palavras. palavras e não como números.

47
Fundamentos de Programação

Introdução a Lógica de Programação


Criando Variáveis
do Tipo Inteiro
No exemplo a área para
declaração de variáveis está
localizada a partir da linha 5.

Para criar uma variável do tipo


inteiro, basta colocar o
nome_da_variável: inteiro, assim
como feito na linha 6.

48
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


Criando Variáveis
do Tipo Inteiro
Na linha 12 atribuímos o valor
“10” para a variável “a”.

Para atribuir valores para alguma


variável utilizamos os símbolos <-
(veja na linha 12), dizemos neste
caso que a variável “a” recebeu o
valor “10”.

49
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


Pressionando a tecla “F9”
Criando Variáveis ou indo em Run (executar)
=> Rodar o Algoritmo
do Tipo Inteiro
E por último mostramos o valor
que está armazenado na variável
“a” através do comando escreva
(veja na linha 15)

50
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação

Declaramos duas variáveis (a e b)


na mesma linha como do tipo inteiro
(Veja a linha 6).

Note que nas linhas 12 e 13


atribuímos os valores para as
variáveis.

Na linha 15 mandamos escrever na


tela a soma dos dois valores
armazenados nas variáveis.

51
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


Operações Matemáticas
Operadores Aritméticos

52
Imagem: https://pixabay.com/pt/illustrations/fundo-n%c3%bameros-contando-n%c3%bameros-5594879/
Fundamentos de Programação

Introdução a Lógica de Programação


Operações Matemáticas
Operadores Aritméticos

Note que nas linhas 13 e 16 estamos


lendo os valores para as variáveis
“a” e “b”.

Para que nas próximas linhas


fazermos diversos cálculos com os
valores digitados pelo usuário.

53
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


Operações Matemáticas
Operadores Aritméticos
Resultado:

54
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


Operações Matemáticas
Operadores Aritméticos
Note na linha 13 que estamos lendo
os valores para as variáveis de uma
única vez, esse método de leitura é
uma boa forma para diminuir a
quantidade de linhas do nosso
código.

55
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


Criando Variáveis
do Tipo Real
Para criar uma variável do
tipo real, basta colocar o
nome_da_variável: real,
assim como feito na linha 7.

56
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


Criando Variáveis
Lógicas (Booleanas)
Para criar uma variável do
tipo lógico, basta colocar o
nome_da_variável : logico,
assim como feito na linha 6.

57
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


Criando Variáveis
Tipo Caracter
Para criar uma variável do tipo
caractere, basta colocar o
nome_da_variável: caracter,
assim como feito na linha 7.

58
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Introdução a Lógica de Programação


ATIVIDADES
1. Qual opção representa variáveis do tipo inteiro?
a) 1, 2, 3, 4.1.
b) 50, 34, 67,45, 76.5.
c) 40, 56, 34, 24,59.
d) 2.8,10, 11, 12,13.

2. Defina o que são as variáveis do tipo “lógico”.

3. É possível realizar operações entre Números Inteiros e Números


reais, porém se o resultado for um Número Real, a variável que recebe
o resultado precisa ser do tipo Real. Esta afirmação é:
a) Verdadeira
b) Falsa
59
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Introdução a Lógica de Programação


ATIVIDADES

4. Defina o que é uma variável do tipo “real”. Dê um


exemplo de um número real.

5. Defina o que é uma variável do tipo “caracter”. É possível


armazenar somente um único caractere numa variável
deste tipo?

60
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Introdução a Lógica de Programação


ATIVIDADES
6. Faça um programa que calcule o valor de desconto para
um determinado produto, faça um Print Screen do código
fonte do seu programa e do programa em execução.

OBS: No programa deve aparecer o seu nome, deve permitir


que o usuário digite o código do produto, o valor do produto,
o valor da porcentagem do desconto. No final deve ser
calculado e apresentado o valor total a pagar.

EXEMPLO:

61
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 02
Fluxogramas e Condicionais
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Fluxogramas e Condicionais

O fluxograma se caracteriza pela


utilização de símbolos gráficos que
representam um processo ou ação, os
quais são ligados por meio de setas
que indicam a possível trajetória do
fluxo.

Essa trajetória normalmente segue a


direção de cima para baixo e da
esquerda para a direita.

63
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais

64
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais

Exemplo 1
Somando dois valores

65
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais

Exemplo 2
Utilizando condicionais

66
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Criando fluxogramas
pelo Power Point

Para criar fluxogramas pelo Power


Point basta clicar na guia “Inserir” e
depois em “Formas”, lá será possível
encontrar os símbolos do fluxograma
e também as setas que utilizamos
para fazer o caminho do fluxo.

67
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
ATIVIDADES
1. Qual a utilidade em utilizar um fluxograma?
2. Em qual fase do projeto os fluxogramas são mais úteis?
3. Através do próprio Word, crie um fluxograma que calculará a média entre dois
valores. Faça todo o processo com base nos exemplos mostrados neste tema ou
em aula.
4. Através do próprio Word crie um fluxograma para ler a nota do aluno, se a nota for
menor que 7 deverá aparecer uma mensagem: “Aluno reprovado!” Caso contrário
deverá aparecer “Passou de ano!”.
5. Pesquise na internet três programas gratuitos que são próprios para criar
fluxogramas e ou sites online que permitem a criação de fluxogramas
gratuitamente.

68
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Fluxogramas e Condicionais

Condicionais são condições


impostas para que algo aconteça. Por
exemplo, quando uma mãe diz para o
filho que ele só poderá comer o
chocolate após comer toda a comida,
perceba que a mãe está impondo
uma condição para o filho, que se
atendida, o menino poderá comer o
chocolate, do contrário ficará sem.

69
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Operadores de
Comparação

Para criarmos condicionais utilizamos


muitas vezes os operadores de
comparação.

70
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Condicionais Simples
A condicional simples funciona da
seguinte maneira, utilizamos:

Se (condição for verdadeira) então


No exemplo abaixo se o valor da
variável for menor que 10 então
aparecerá na tela a mensagem “O valor
digitado é menor que 10. ”
Note que a condicional “se” deve ser
finalizada com um “fimse”.
71
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Condicionais Simples
A condicional simples funciona da
seguinte maneira, utilizamos:

Se (condição for verdadeira) então


No exemplo abaixo se o valor da
variável for menor que 10 então
aparecerá na tela a mensagem “O valor
digitado é menor que 10. ”
Note que a condicional “se” deve ser
finalizada com um “fimse”.
72
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Condicionais Composta
Exemplo 01:
Note que se a condição for verdadeira,
ou seja, (nota >=7) o algoritmo exibirá:
“Parabéns! Continue assim!”

Caso contrária exibirá:


“Você precisa estudar mais!”

73
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Condicionais Composta
Exemplo 02:

74
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Conectivo lógico “E”
Para que as ações sejam executadas é
necessário que todas as condições
sejam verdadeiras, do contrário não
serão executadas.

Exemplo 01:
A garota tem duas condições para sair, essas duas
condições (receber o salário e não chover) precisam ser
verdadeiras para que ela saia, do contrário ela não irá sair.
75
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Conectivo lógico “E”
Exemplo 02:

76
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Conectivo lógico “OU”
Para que as ações sejam executadas é
necessário que qualquer uma das
condições sejam verdadeiras.

Exemplo 01:
Se qualquer uma das condições for
verdadeira (passa o ônibus A ou B) ele
conseguirá chegar no horário. Se
nenhum dos ônibus passar ele se
atrasará.

77
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Conectivo lógico “OU”
Exemplo 02:

78
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
Escolha Caso
A escolha caso é muito utilizado em telas
com menus de interação com o usuário.

79
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Fluxogramas e Condicionais
ATIVIDADES
1. Desenvolva um programa utilizando uma condicional simples, o algoritmo deve
verificar se o valor digitado é menor ou igual a 20. Se a condição for verdadeira, deve
aparecer uma mensagem: "O valor digitado é menor ou igual a 20!".

Exemplo de tela:

80
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Fluxogramas e Condicionais
ATIVIDADES
2. Desenvolva um programa qualquer utilizando a condicional composta.
OBS: O seu nome deve aparecer na tela de execução do programa.

3. Desenvolva um programa que aplicará um desconto de 25% ao valor do produto se o


cliente possuir um dos seguintes códigos de promoção: “VBFMZB” ou “HT2Y8E”. Caso
contrário o cliente deverá pagar o valor cheio sem desconto.
Exemplo de tela:

81
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 03
Valores aleatórios e Laços de Repetição
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Valores aleatórios e Laços de Repetição

Os valores aleatórios são muito


utilizados por programadores em diversas
situações.

As linguagens de programação
normalmente possuem funções para a
criação de valores aleatórios e através
delas podemos gerar valores aleatórios
para utilizarmos na criação de por
exemplo: jogos, senhas, captcha,
algoritmos de criptografia etc.
83
Imagem: https://pixabay.com/pt/photos/pol%c3%adtica-de-privacidade-isto-2117996/
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Aleatórios para Números
Para criar um número aleatório, por
exemplo, de tipo inteiro, é
necessário a criação de uma variável
que receberá esse valor aleatório,
conforme a linha 10. Dentro da
seção Início é possível fazer a
variável receber o valor aleatório
através das tags “aleatorio on” e
“aleatorio off”, conforme é possível
observar nas linhas entre 15 e 17.

84
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Aleatórios para Números

O botão abaixo permite editar o


valor de intervalo para a geração
do valor aleatório:

85
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Aleatórios para Números

Note que no VisualG também é


possível utilizar a função “randi( )”
para gerar número inteiros
aleatórios, no caso, o exemplo
acima ficaria assim:

86
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Aleatórios para Caracteres

Para criar um valor aleatório do


tipo caractere (letras e palavras) o
procedimento é parecido ao
mostrado anteriormente para
inteiros, a diferença é que deverá
ser declarada uma variável do tipo
caracter que receberá os valores
aleatórios.

87
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


ATIVIDADES
1. Desenvolva um programa de desafios para o usuário, o desafio
dependerá do valor aleatório gerado. Crie um valor aleatório entre 0
a 9. Utilize a condicional “Escolha Caso” (tema 2 da apostila) para
definir os desafios, ou seja, você terá que gerar 10 situações
utilizando o “Escolha caso”, uma para cada número aleatório do
intervalo entre 0 e 9.

88
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


ATIVIDADES
2. Desenvolva um programa para gerar 6 números aleatórios para
serem jogados na loteria. Os números devem estar no intervalo de 1
a 60. Segue abaixo o exemplo da tela de execução.

EXEMPLO:

89
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


ATIVIDADES
3. Elabore um jogo chamado “Jogo dos Palpites”, o jogo funcionará da
seguinte maneira, dois jogadores farão palpites de números entre 0 e
100 o jogador que chegar mais próximo do valor aleatório ganhará.
Segue abaixo as telas de exemplo do funcionamento do jogo.

EXEMPLO:

90
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Laços de Repetição

Os laços de repetição são muito


utilizados nos sistemas para fazer
algum tipo de consistência de
dados do usuário, ocorre que por
engano ou distração o usuário
pode entrar com informações
inválidas que se não forem
consistidas podem prejudicar a
base de dados dos sistemas.

91
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Laços de Repetição
Enquanto
Neste tipo de laço de repetição
enquanto a condição estiver sendo
atendida o programa permanecerá
em looping.

92
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Laços de Repetição
Enquanto

93
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Laços de Repetição
Enquanto

Resultado:

94
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Laços de Repetição
Repita até que
Neste tipo de laço de repetição o
algoritmo primeiro fará algo até
que a condição seja atendida.

95
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Laços de Repetição
Para
Neste tipo de laço de repetição há
uma variável que funcionará como
contador, já na definição do laço é
especificado o número de
repetições.

A cada repetição a variável


contadora (pode ter outro nome)
receberá automaticamente o
acréscimo de 1.
96
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


Laços de Repetição
Para

97
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


ATIVIDADES
1. Imagine que o usuário esqueceu a senha de acesso ao
sistema, desenvolva um programa que solicite ao usuário o
nome da mãe dele. Se o usuário acertar a resposta, deverá ser
gerada uma senha através de valores aleatórios, porém, se ele
errar três tentativas, deverá aparecer uma mensagem de erro:
“Você excedeu o número de tentativas”.

98
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


ATIVIDADES
2. Desenvolva um programa para calcular o IMC (Índice de
Massa Corporal), o algoritmo deverá ler a altura e o peso do
usuário e depois calcular o IMC com base na fórmula:
IMC = peso / (altura)². Após o cálculo deve ser informado o
valor do IMC do usuário e a classificação com base na tabela.

Deve-se utilizar um laço de repetição para consistir se o


usuário digitou um valor de peso e altura maiores do que 0.
Enquanto ele digitar um valor menor ou igual a zero deverá
aparecer uma mensagem de erro de: “Peso e altura devem ser
maiores que 0 ”.

99
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Valores aleatórios e Laços de Repetição


ATIVIDADES
3. Utilizando o laço de repetição PARA, desenvolva um
programa que faça uma tabuada, para isso leia um número de
1 a 10, se o usuário digitar um valor fora desse intervalo deve
aparecer uma mensagem de erro: “Digite um valor entre 1 e
10.” A tela esperada deve conter os valores da tabuada para o
número digitado pelo usuário.

100
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 04
Menus e validações de dados
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Menus e validações de dados

Os menus são importantes para gerar


interação com o usuário, um sistema por
mais básico que seja terá algum tipo de
menu. Os menus além de necessitarem ser
funcionais, também devem possuir um
layout intuitivo, amigável e bonito.

Os menus do sistema são a embalagem do


nosso produto, não adianta ter um sistema
muito bom, porém com uma tela ruim
para a interação com o usuário.

102
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Menus e validações de dados

A validação de dados é
algo extremamente necessária,
visto que o sistema deve prever a
possibilidade de falhas humanas
durante a interação com o usuário
através de leitura de dados em
tela.

103
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Menus e validações de dados


Note na linha 13 e 16 que foram
inseridos caracteres somente
para melhorar a estética do
menu.

104
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Menus e validações de dados


Entendo o código 1:

Utilizamos um laço de repetição


enquanto houver os valores
inseridos pelo usuário, ou seja, o
programa espera um número
entre 1 e 4, enquanto o usuário
digitar algo diferente do
esperado o mesmo continuará
preso ao laço de repetição.

105
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Menus e validações de dados

106
106
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Menus e validações de dados

107
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Menus e validações
de dados
Entendo o código:
Neste caso foi utilizado a condicional
“escolha” para interagir com o valor
inserido pelo usuário, inclusive a
condicional escolha é muito boa para
ser utilizada nesses casos.

108
Fundamentos de Programação

Menus e validações de dados


1. ATIVIDADE
Desenvolva um programa no VISUALG que possua um menu
de um sistema bancário, conforme o exemplo abaixo:

• Se o cliente escolher a opção 1, deverá apagar a


tela e em seguida aparecer uma tela com um
• Criar uma consistência fazendo que o usuário
saldo fictício.
digite apenas números entre 1 e 3, se o usuário
• Se o cliente escolher a opção 2, deverá apagar a
digitar um número fora desse intervalo, uma
tela e em seguida o sistema deverá mencionar
mensagem de erro deverá ser apresentada com
os gastos (fictícios) mais recentes do cliente.
os dizeres: “Opção inválida!” E em seguida deve
• Se o cliente escolher a opção 3, deverá apagar a
ser solicitada a opção novamente para o usuário
tela e em seguida aparecer uma mensagem:
até que ele digite uma opção válida.
“Procure a sua agência para a liberação de
empréstimos. ”
109
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Menus e validações de dados


2. ATIVIDADE Ao selecionar a opção 1 deverá:
• Aparecer o seu nome, disciplina,
Desenvolva um programa que fornecerá as quantidade de faltas (fictícias) e notas
informações de notas e faltas dos alunos, (fictícias) conforme o exemplo a seguir:
conforme o exemplo abaixo:

110
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Menus e validações de dados


2. ATIVIDADE • Note que o sistema deverá ler a dúvida do
usuário e depois apresentar a mensagem: “A
Ao selecionar a opção 2 deverá: sua dúvida foi enviada para o professor, por
• Limpar a tela; favor, aguarde uma resposta dele”.
• Aparecer a tela de dúvidas ao qual o
aluno poderá enviar uma mensagem com
alguma dúvida para o professor

111
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Menus e validações de dados


2. ATIVIDADE
Ao selecionar a opção 3 deverá: • Crie uma consistência fazendo que o usuário
• Limpar a tela; digite apenas números entre 1 e 3, se o
• Apresentar a mensagem: “Sessão usuário digitar um número fora desse
finalizada! ”. intervalo, uma mensagem de erro deverá ser
apresentada com os dizeres: “Opção
inválida! ” E em seguida deve ser solicitada a
opção novamente para o usuário até que ele
digite uma opção válida.

112
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

TEMA 05
Vetores
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Vetores
Os vetores ajudam a facilitar esta tarefa,
Imagine que você deseja armazenar eles são um tipo de variável que permite
o nome e as notas de dez alunos, armazenarmos uma grande quantidade
seria uma tarefa árdua ter que criar de informações de um mesmo tipo, quer
dez variáveis para armazenar cada sejam: números inteiros, reais, caracteres
uma os nomes e mais dez para ou lógicos, sem precisar criar várias
armazenar as notas deles. variáveis diferentes para cada dado a ser
armazenado.

Ele irá armazenar as informações em


cada posição (índice) de memória
reservada.

114
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 01
Uma variável que será
transformada em vetor deverá
ser declarada normalmente
como todas as variáveis, ou
seja, dentro da seção de
declarações de variáveis, ou
dentro de funções e
procedimentos para serem
usados localmente.

115
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 01
nomeDoVetor: vetor [tamanho do
vetor] de tipo (inteiro, real, caractere
ou lógico).
No exemplo, criamos um vetor com
o nome vetorDeInteiros para
armazenar 4 números inteiros
([0...3]), veja a linha 9 do algoritmo.
Em seguida, na linha 14, atribuímos
a primeira posição de memória do
vetor (posição 0) para receber o
valor 2.
116
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 01
Veja como ficou o armazenamento dos dados
no vetor vetorDeInteiros, na posição 0 está
armazenado o valor 2, já, nas demais posições
do vetor, por padrão para vetores inteiros ou
reais receberão o valor inicial de 0, podendo
serem alterados quando assim desejarmos.

Representação do vetor:

117
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 02
Criando um vetor do tipo Real

No exemplo, note que o processo


de criação de vetores para números
reais é parecido com o de números
inteiros, a diferença é que
declaramos o vetor como do tipo
real, veja a linha 9 do algoritmo.

118
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 02
Criando um vetor do tipo Real
Note que na posição 0 do vetor foi
atribuído o valor de 2.6, veja a
linha 14.

Representação do vetor:

119
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 03
Criando um vetor do tipo Caractere

No exemplo, note que o processo


de criação de vetores para
caracteres é parecido com o de
números inteiros e reais, a
diferença é que declaramos o
vetor como do tipo caracter, veja a
linha 9 do algoritmo.

120
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 03
Criando um vetor do tipo Caractere
Note que na posição 0 do vetor foi
atribuído o valor de “blablabla”, veja
a linha 14.

Representação do vetor:

121
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 04
Criando um vetor do tipo Lógico

No exemplo, note que o processo


de criação de vetores para o tipo
logico é parecido com os
anteriores, a diferença é que
declaramos o vetor como do tipo
logico, veja a linha 9 do algoritmo.

122
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 04
Criando um vetor do tipo Lógico
Note que na posição 0 do vetor foi
atribuído o valor verdadeiro veja a
linha 14.

Representação do vetor:

123
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 05
Exibindo as informações
armazenadas nos vetores
A partir da linha 18, é possível
visualizar uma maneira de mostrarmos
as informações armazenadas num
vetor.

Esta não é a melhor forma de


mostrarmos os dados de um vetor, pois
além de ser trabalhosa, polui o código
fonte com linhas desnecessárias.
124
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 05
Exibindo as informações
armazenadas nos vetores
No exemplo, foi criado um laço
de repetição do tipo “Para”
com o objetivo de ler os
números inteiros digitados
para as quatro posições de um
determinado vetor. Veja entre
as linhas 19 e 23.

125
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
EXEMPLO 05
Exibindo as informações
armazenadas nos vetores
Outro laço de repetição foi
criado para mostrar os valores
armazenados no vetor, veja as
linhas entre 29 e 31.
Os laços de repetição utilizam
uma variável como contador
do tipo inteiro que será
responsável por armazenar a
posição de memória do vetor.
126
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
ATIVIDADE

1. O que são vetores?

2. Como referenciamos um elemento


específico de um vetor?

127
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Vetores
ATIVIDADE
3. Desenvolva um programa que utilizará Limpe a tela e exiba os
um vetor para armazenar 5 números números conforme o
inteiros digitados pelo usuário, e depois exemplo:
mostre esses 5 números em tela.

Exemplo:

128
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
ATIVIDADE

4. Desenvolva um programa
que utilizará um vetor que
receberá 5 números inteiros
que serão gerados de forma
aleatória (entre 0 e 100) e
depois mostre esses números
aleatórios armazenados no
vetor em tela.

129
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores Primeiro passo: O algoritmo deve


limpar a tela toda vez que o usuário
ATIVIDADE digitar as notas de cada aluno.

5. Desenvolva um programa
utilizando vetores que irão ler do
usuário 5 nomes de alunos e 5
notas de AV1 e 5 notas de AV2.
Segundo passo: Mostre os nomes
O algoritmo deverá calcular a e as notas dos alunos.
média aritmética simples das
notas dos alunos e exibi-las.

130
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Vetores
ATIVIDADE
6. Desenvolva um programa que irá
ler 10 números inteiros digitados Em seguida a tela deve ser apagada, e
pelo usuário, esses números devem depois mostrar os números pares
ser armazenados num vetor, em armazenados no vetor:
seguida mostre em tela somente os
números pares armazenados no
vetor.

131
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

TEMA 06
Matrizes e Algoritmos de ordenação
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Matrizes e Algoritmos de ordenação

As matrizes são como se


fossem conjuntos de vetores,
em vez de termos um vetor
em que podemos acessar as
posições em apenas uma
linha, com as matrizes
podemos acessar várias linhas
diferentes.

133
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


Assim como os vetores, as matrizes podem
armazenar dados de números inteiros,
reais, caractere e lógico.

Imagine por exemplo, que queiramos


armazenar três notas de 41 alunos, então
poderíamos usar uma matriz para isso.

Cada posição da matriz é representada por


um índice, na matriz temos dois índices um
na vertical e outro na horizontal.

134
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação

EXEMPLO 01
Para criarmos uma matriz no
VISUALG é necessário declará-la na
seção de declarações de variáveis.

No exemplo é possível notar na


linha 7 que foi criado uma matriz
com o nome de matriz, como um
conjunto de dois vetores que
podem armazenar até 4 números
inteiros cada.

135
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação

EXEMPLO 01

Entre a linha 15 e 18, a linha 0 da


matriz receberá 4 números inteiros
para cada índice da linha 0.

Entre a linha 21 e 24, a linha 1 da


matriz receberá 4 números inteiros
para cada índice da linha 1.

136
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


EXEMPLO 01
Para exibir os valores armazenados na
matriz, utilizamos laços de repetição
do tipo PARA, é possível visualizar o
laço a partir da linha 28.

137
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


EXEMPLO 02
No exemplo anterior, perceba que a
visualização dos dados da matriz é
ruim, para melhorar a visualização é
necessário alterar o laço de repetição
utilizado para mostrar os dados
armazenados na matriz.

138
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


EXEMPLO 02
Entre as linhas 28 e 33 há um laço de
repetição PARA dentro de outro laço
de repetição PARA.

Além disso, está sendo utilizado o


comando escreva em vez de escreval,
ou seja, a cada repetição os números
da linha serão exibidos um do lado do
outro e quando acabar o laço o
comando escreval que está na linha
32 fará o pulo de linha.

139
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


EXEMPLO 02

As variáveis contador1 e contador2


são os índices da matriz, através deles
percorremos as linhas e colunas da
matriz através dos laços de repetição.

140
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


EXEMPLO 03

No exemplo, foi alterado o algoritmo


para ler os números digitados pelo
usuário, é importante ressaltar que os
laços de repetição utilizados para ler os
números são praticamente os mesmos
daqueles utilizados para exibir os dados
armazenados na matriz.

141
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


EXEMPLO 03
Basta comparar as linhas entre 15 e 20
com as linhas entre 24 e 29, perceba que
o que muda é que numa terá o comando
leia e na outra teremos o comando
escreva para exibir os valores da matriz.

142
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


ATIVIDADE
1. O que são matrizes?

2. Como podemos referenciar um elemento


específico de uma matriz?

3. Qual é a utilidade de uma matriz?

4. Desenvolva um programa que carregue numa matriz


2(linhas) x 10(colunas) os nomes dos alunos de uma sala, a
sala está dividida em dois grupos de 10 alunos. Após isso,
devem ser apresentados os nomes dos alunos dos grupos.
143
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


ATIVIDADE
4. Desenvolva um programa com uma
matriz 3x3, atribua a cada índice da
Exemplo:
matriz um valor aleatório (entre 0 e 50).

Em seguida imprima todos os dados da


matriz e depois somente os valores
armazenados na diagonal principal da
matriz.

Apague a tela e em seguida mostre os


valores localizados na diagonal principal.
144
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


Algoritmos de ordenação
O ato de ordenar faz com que os
elementos sigam uma ordem
pré-definida. Há várias utilidades para a
ordenação dos dados, desde
A ordenação pode ser feita com
melhorar a visualização deles,
números e caracteres, e podem ser
crescentes ou decrescentes. até mesmo para melhorar e
agilizar o acesso a informação.

145
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


Algoritmos de ordenação
Bubble Sort
Em seu funcionamento ele percorre o
vetor diversas vezes, e a cada
O Bubble Sort, ou ordenação por passagem faz flutuar para o topo o
flutuação (literalmente "por bolha"), é maior elemento da sequência.
um algoritmo simples e muito utilizado
por programadores para ordenar uma Por conta dessa “flutuação” deram o
quantidade pequena de dados. nome de Bubble Sort para o
algoritmo.

146
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


Algoritmos de ordenação
Bubble Sort
Exemplo:
O algoritmo de ordenação “Bubble
Sort” irá comparar a bola “1” com
todas as bolas até encontrar uma bola
que seja menor, e quando encontrar
uma bola menor ele fará a troca.

147
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


Algoritmos de ordenação
Bubble Sort
Exemplo:
Após a bola 1 ter sido comparada com
todas as bolas, a próxima a ser
comparada com as demais é a bola 4
que está na segunda posição do vetor.
Note que 4 não é maior que 5 então
não será feita a troca entre essas bolas,
porém 4 é maior que 2, então os
valores de 4 e 2 são trocados.
148
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


Algoritmos de ordenação
Bubble Sort

Exemplo:
O que restou foi comparar o
penúltimo valor com o último, no
caso comparar o 5 com o 4, como Pronto! Agora temos o nosso vetor ordenado.
4 é menor que 5 então será a
feita a troca.

149
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


Algoritmos de ordenação
Bubble Sort

Exemplo:

Algoritmo de ordenação
“Bubble Sort” parte 1/2:

150
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


Algoritmos de ordenação
Bubble Sort

Exemplo:
Algoritmo de
ordenação
“Bubble Sort”
parte 2/2:

151
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


ATIVIDADE
1. Explique como funciona o algoritmo de ordenação Bubble
Sort.
2. Com base no funcionamento do algoritmo Bubble Sort, é
correto afirmar que ele é ideal para ordenar pequenas
listas de números? Justifique.
3. Desenvolva um programa que irá ler 10 números do
usuário, utilize o Bubble Sort para ordenálos.
4. Desenvolva um programa utilizando o algoritmo de
ordenação Bubble Sort para ordenar 10 números
inseridos pelo usuário. Porém após ordenar a lista, devem
ser mostrados em ordem somente os números pares.
152
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Matrizes e Algoritmos de ordenação


ATIVIDADE

5. Desenvolva um programa que irá ler do usuário 10 nomes


e 10 notas dos alunos. Utilize o algoritmo de ordenação
Bubble Sort para ordenar as notas, importante ressaltar que
os respectivos nomes dos alunos devem ser ordenados
junto com as notas. Mostre os valores ordenados.

6. Pesquise e cite ao menos 4 algoritmos de ordenação.

153
Fundamentos de Programação

TEMA 07
Procedimento
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Procedimento

Podemos dividir um grande


programa em porções menores
denominadas de módulos, esses
módulos podem consistir em Os procedimentos são rotinas que
arquivos de código-fonte ou
executam uma determinada tarefa,
apenas rotinas.
utilizando ou não argumentos
Essas rotinas podem ser recebidos, sem retornar um valor.
classificadas em dois tipos:
funções e procedimentos.

155
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento

EXEMPLO 01
Os procedimentos são criados fora
da seção Início, veja que entre as
linhas 8 e 11 foi criado um
procedimento de nome “saudacao”,
toda vez que ele for chamado
aparecerá uma mensagem “Olá
Mundo! ”.

A chamada do procedimento está


sendo feita na linha 17.

156
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
EXEMPLO 02
Procedimento com parâmetros

Parâmetros são valores decorrentes


de uma variável ou de uma
expressão, que pode ser enviado
para um procedimento ou função.

No caso abaixo queremos que o


procedimento receba o nome do
usuário e faça a saudação
personalizada para o usuário.
157
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
EXEMPLO 02
Procedimento com parâmetros

Note que na linha 7, declaramos uma


variável chamada de “nome” como do tipo
caracter.
Na linha 25 lemos o nome digitado pelo
usuário e na linha 31 chamamos o
procedimento “saudacao” passando o
nome do usuário como parâmetro.
Entre as linhas 11 e 14 está o nosso
procedimento “saudacao”.
158
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
EXEMPLO 02
Procedimento com parâmetros

159
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
EXEMPLO 03
Procedimento utilizando
Variável Local

Para declarar uma variável local


dentro de um procedimento ou
função, basta utilizar a tag “Var” e
criar a variável dentro dessa seção,
veja entre as linhas 9 e 11.

160
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
EXEMPLO 03
Procedimento utilizando
Variável Local
Note que na tela de execução, não
importa quantas vezes chamemos o
procedimento “incrementaVariavelLocal”
sempre o valor será o mesmo (nesse
algoritmo), pois cada vez que ele é
chamado a variável terá sempre 0 e
depois será incrementado +1.

161
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
EXEMPLO 03
Procedimento utilizando
Variável Local

162
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
ATIVIDADE
1. O que são módulos?

2. O que são procedimentos?

3. O que são parâmetros?

4. Com base no exemplo 2, qual é a utilidade em


passarmos parâmetros para os procedimentos?

5. Explique o que você entendeu sobre os exemplos 3 e


4, onde num exemplo o procedimento utiliza uma
variável global e no outro é utilizado uma variável local.
163
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
ATIVIDADE • Se o cliente escolher a opção 1, deverá apagar a
tela e em seguida aparecer uma tela com um
saldo fictício.
• Se o cliente escolher a opção 2, deverá apagar a
6. Desenvolva um programa que tela e em seguida o sistema deverá mencionar os
possuirá o menu de um sistema gastos (fictícios) mais recentes do cliente.
bancário, conforme o exemplo
abaixo, porém, para cada tela do
menu deverá ser criado um
procedimento, ou seja, um
procedimento para o menu
principal, outro para saldo,
extratos e empréstimos.

164
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
ATIVIDADE
• Se o cliente escolher a opção 3, deverá apagar a tela e
em seguida aparecer uma mensagem: “Procure a sua
agência para a liberação de empréstimos. ”
• Criar uma consistência fazendo que o usuário digite
apenas números entre 1 e 3, se o usuário digitar um
número fora desse intervalo, uma mensagem de erro
deverá ser apresentada com os dizeres: “Opção inválida!
” E em seguida deve ser solicitada a opção novamente
para o usuário até que ele digite uma opção válida.

165
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento A tela deverá ser limpa e


ATIVIDADE aparecer o menu abaixo:

7. Desenvolva um programa no VISUALG


que irá ler dois números inteiros.

OBS: Para cada opção (soma, subtração,


multiplicação e divisão) crie um
procedimento e escreva o resultado da
operação matemática.

166
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento

Funções Por exemplo, podemos criar


As funções em programação são uma função para calcular a
similares às existentes na Matemática, média, então toda vez que for
ou seja, elas operam com valores necessário calcular a média
passados como parâmetros e devolvem poderemos utilizar essa função.
um valor resultante dos cálculos.

Assim como os procedimentos, as


funções são ótimas para atribuirmos
para elas as tarefas repetitivas.

167
Fundamentos de Programação

Procedimento
Exemplo 01
Funções Sem Parâmetros
Assim como nos procedimentos, as
funções são criadas fora da seção
“Início”, conforme a imagem abaixo,
veja as linhas entre 9 e 14.

Note que após ser chamada


retornará um número inteiro, no
caso será o número 15 (linha 12).

168
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
Exemplo 01
Funções Sem Parâmetros
Na linha 20 é feita a chamada da
função retornaInteiro.

E na linha 23 é exibido o valor


retornado pela função.

169
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
Exemplo 02
Funções Com Parâmetros
São lidos dois números inteiros
através do usuário (linha 25), esses
números são passados como
parâmetros na chamada da função
(linha 29).

A função retornaSoma, recebe os


dois números e calcula a soma (da
linha 12 até 17).

170
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
Exemplo 02
Funções Com Parâmetros
Após, o valor da soma retornada
pela função retornaSoma é exibido
em tela (linha 31).

171
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Procedimento
ATIVIDADE
1. O que são funções?

2. Qual a diferença entre uma função e um


procedimento?

3. Com base no exemplo 2, desenvolva um


programa no VISUALG que irá ler dois valores
inteiros. Crie uma função para cada uma das
seguintes operações matemáticas: soma, subtração,
multiplicação e divisão. No final o resultado das
operações deverá ser exibido em tela.

172
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Procedimento
ATIVIDADE

4. Desenvolva um programa que possuirá uma


função chamada de pagamento, ela deverá
receber as horas trabalhadas e o valor das horas.

No final o valor a ser pago para o trabalhador


deverá ser retornado pela função e depois
exibido em tela.

173
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Procedimento
ATIVIDADE
5. Desenvolva um programa que
possuirá uma função que receba o
Limpe a tela e faça aparecer a
nome do usuário e a idade dele, a mensagem abaixo:
função deverá retornar quantos dias
de vida o usuário já viveu.
Por exemplo:

174
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

TEMA 08
Técnicas e dicas de programação
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Técnicas e dicas de programação


Para que os projetos de
desenvolvimento de softwares
ocorram bem, é necessário que o
programador siga os padrões e boas É sempre bom o programador
práticas estabelecidas, assim, ter em mente que outros
evitando ou minimizando erros programadores poderão mexer
decorrentes de falta de planejamento no código do seu programa, e
ou padronização de código. para facilitar esta tarefa de
entendimento do código nada
melhor que seguir as normas.

176
Fundamentos de Programação

Técnicas e dicas de programação

1. Identificadores
Em programação, um identificador é
um nome atribuído a uma variável de
memória, uma estrutura de dados,
uma classe, um objeto, um
procedimento, uma função, um
comando ou palavra reservada da
linguagem.

177
Imagem: https://pixabay.com/pt/illustrations/desenvolvimento-%c3%adcone-3335977/
Fundamentos de Programação

Técnicas e dicas de programação


1. Identificadores • Um identificador pode ter até 32 caracteres
de comprimento.
Algumas regras são estabelecidas
• O primeiro caractere deve ser uma letra do
para definição de identificadores,
alfabeto.
que variam conforme a linguagem.
• Os demais caracteres poder ser letras,
números ou o sinal de sublinhado, também
Exemplos válidos de indicadores:
“Nome_Cliente”, “Data_Emissao” e conhecido como underscore (_).
“Valores_1_a_100”. • Não são aceitos sinais de pontuação,
caracteres acentuados, cedilha (ç) ou
Não são exemplos válidos de identificadores: espaço em branco.
“Nome do cliente”, “Data_Emissão”,
“MensagemAviso!!!” e “2aSemana”.
178
Fundamentos de Programação

Técnicas e dicas de programação


2. Indentação de Código
Indentar o código significa recuar
partes do código a fim de facilitar o
entendimento do código.

Um código sem indentação torna


maçante o processo de
entendimento.

179
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Técnicas e dicas de programação


3. Testes
Efetuar vários testes nos programas
é uma boa prática.

Criar testes automatizados também


deve ser considerado.

Não poupe esforços para testar um


programa antes de entregar ao
cliente.

180
Imagem: https://pixabay.com/pt/illustrations/bin%c3%a1rio-m%c3%a3os-teclado-torneira-2372130/
Fundamentos de Programação

Técnicas e dicas de programação


4. Fluxogramas
Como visto no tema sobre
fluxogramas, os fluxogramas são
muito úteis nas etapas iniciais dos
projetos, pois nos dão a real
dimensão de como deverá funcionar
o programa.

181
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Técnicas e dicas de programação


Note que comentar o código
5. Comentários é uma boa prática pois
facilita o processo de
Dependendo da linguagem de
entendimento do código.
programação a forma de
comentar o código mudará.
Imagine que nem sempre
será você que irá efetuar a
manutenção do sistema.

182
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Técnicas e dicas de programação


6. Diminuir as linhas Por exemplo:
de Código Em vez de escrever:
Leia (a)
Diminuir a quantidade de linhas de Leia (b)
código, também é uma boa prática,
muitas vezes menos é mais.
Podemos escrever
desta maneira:
Leia (a, b)

183
Fundamentos de Programação

Técnicas e dicas de programação


7. Fazer consistências POR EXEMPLO:
1. Ao ler o nome de alguma pessoa, devemos
de dados consistir, por exemplo, se:
• A pessoa digitou alguma coisa;
• Se há somente espaços em branco;
Campos de formulários ou
• Se digitou números ou caracteres não esperados
variáveis que recebem valores como: *&%¨#$%#*!
através da interação com usuário, 2. Ao ler a idade de alguém, devemos consistir, por
devem receber consistência de exemplo, se:
dados. • A idade é maior que zero;
• Verificar se o usuário não digitou letras ou
caracteres inválidos;

184
Fundamentos de Programação

Técnicas e dicas de programação


8. Tenha um controle de versão
Quando há muitos programadores
A cada alteração do programa, trabalhando num mesmo sistema
seja organizado para manter o simultaneamente é importante
controle de versão atualizado
especificando a nova versão e
considerar um software para fazer o
também registrando o que foi controle de versão do sistema, pois
alterado na nova versão. o processo manual é suscetível a
muitas falhas.

185
Fundamentos de Programação

Técnicas e dicas de programação


9. Idioma

Como muitas linguagens utilizam comandos em


inglês, é recomendável ter um conhecimento
no mínimo básico de inglês, assim você terá
condições de interpretar melhor as mensagens
de erro e poderá fazer pesquisas na internet
em páginas de língua inglesa.

186
Imagem: https://pixabay.com/pt/illustrations/conselho-escola-quadro-negro-giz-64269/
Fundamentos de Programação

Técnicas e dicas de programação


ATIVIDADE
1. É possível escrever nomes de variáveis desta maneira: “Nome do cliente”,
“Data_Emissão”, “MensagemAviso!!!”, “2aSemana”? Justifique.

2. O que é endentação de código?


Qual é a importância de indentarmos o código?

3. Faça uma pesquisa sobre quais são os principais


tipos de testes de software.

4. Em qual etapa do projeto os fluxogramas são muito úteis?

5. Qual a importância de se fazer comentários nos códigos dos programas?


187
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Técnicas e dicas de programação


ATIVIDADE
6. O que é validação de dados? Qual é a importância em
validarmos os dados digitados pelos usuários?

7. O que é controle de versão?

8. Quais são os tipos de controle de versão? Pesquise.

9. Por que é importante ter no mínimo o conhecimento


básico de inglês para ser programador? Justifique.

188
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 09
Conceitos básicos de Python
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Conceitos básicos de Python

Criado por Guido Van Rossum nos


anos 1990. Multiplataforma, o
interpretador Python está disponível
para Microsoft Windows e diversos
Unixlike.

Python é uma linguagem de alto


nível, multiparadigma e interpretada,
que pode ser executada em modo
script e/ou em modo interativo.

190
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Conceitos básicos de Python

A sintaxe de Python é simples e fácil de


ser aprendida.

O que delimita um bloco na linguagem


Python são a indentação, e não o bloco
de chaves ({}), como é em C++ ou no
uso de uma palavra reservada, como
na linguagem Pascal.

191
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Conceitos básicos de Python

Quando um programa é criado, o


código-fonte é salvo em um arquivo-
texto com a extensão apropriada
para script Python (.py).

No terminal, ao invocar o interpretador


Python e o script a ser criado, o
interpretador executa o script e recebe
as entradas de dados.

Site: https://www.python.org/
Marcar as duas opções
192
Imagem: Instalador do Python 3.10.5 (64-bit)
Fundamentos de Programação

Conceitos básicos de Python

Criando o Nosso
Primeiro Programa

O Atom que é um editor de


texto (poderoso), será utilizado
como interpretador para Python,
para isso, é necessário primeiro
clicar em File => New File

193
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Conceitos básicos de Python

Criando o Nosso
Primeiro Programa

Clicar em Save (Ctrl + S)

Salve o arquivo da seguinte


maneira: “nome_do_arquivo.py”

194
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Conceitos básicos de Python


Para executar o programa no
Criando o Nosso Atom basta pressionar o botão
Primeiro Programa “F5” do teclado.

Digite o comando A função print() exibe na tela


print (‘Olá mundo!”) informações para o usuário, segue
abaixo a tela de execução:

195
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Conceitos básicos de Python


Criando o Nosso Também podemos concatenar
um texto com um cálculo
Primeiro Programa matemático, conforme abaixo:
Cálculos matemáticos com a
função print(), conforme abaixo:

196
Fundamentos de Programação

Conceitos básicos de Python


ATIVIDADE
1. Escreva sobre a linguagem Python.

2. O que significa dizer que uma linguagem é de baixo nível?

3. O que significa dizer que uma linguagem é de médio nível?

4. O que significa dizer que uma linguagem é de alto nível?

5. O Python é uma linguagem de baixo, médio ou alto nível?

6. O que é uma IDE?

197
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Conceitos básicos de Python


ATIVIDADE

7. Qual a diferença entre o IDLE ( PYTHON SHELL) e o interpretador do


Python via Prompt de Comando?

8. Porque usaremos o Atom para ser o interpretador do Python?

9. O que significa dizer que o que delimita o bloco no Python é a


indentação?

10. Desenvolva um programa que faça aparecer na tela uma frase de


uma letra de música.

198
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Conceitos básicos de Python


ATIVIDADE

11. Quais são as formas de se fazer comentário no código


fonte do Python?

12. Execute os dois comandos:


print('Olá\nmundo!') e print('Olá mundo!’).
Explique a diferença entre eles.

199
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Conceitos básicos de Python

Variáveis em Python
Uma variável serve para armazenar
um valor na memória, para que esse
valor possa ser acessado/utilizado
pelo software quando for necessário.

Existem quatro categorias de alocação:


estática, dinâmica da pilha, dinâmica no heap
explícita e dinâmica no heap implícita.
200
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Conceitos básicos de Python


Variáveis em Python
Exemplo
Ao escrever cpf = 32485977805,
declaramos uma variável com o nome
de cpf e atribuindo a ela o valor de
32485977805

201
Fundamentos de Programação

Conceitos básicos de Python


• É uma boa prática evitar criar nome
Dicas para criar de variáveis muito longos.
Variáveis • Procure também criar variáveis com
nomes autoexplicativos, isso
facilitará o entendimento do código
• As variáveis não podem começar com por outras pessoas.
números. • Além disso, também evite dar
• Devemos começar a variável com uma nomes de funções para as variáveis.
letra ou underscore ( _ ).
• O Python é case sensitive, ou seja, se
você criou uma variável com letras
minúsculas deverá sempre escrevê-la da
mesma forma, do contrário ele não
reconhecerá a variável.
202
Fundamentos de Programação

Conceitos básicos de Python


Variáveis em Python • Na variável cpf estamos
Exemplo atribuindo a ela um número
inteiro (int);
Declaradas três variáveis, chamadas:
cpf, nome e altura. • já em nome estamos atribuindo
caracteres (string) e;

• na variável altura estamos


atribuindo um valor real (float).

203
Fundamentos de Programação

Conceitos básicos de Python


Variáveis em Python

É possível utilizarmos o comando type


para mostrar o tipo da variável:

204
Fundamentos de Programação

Conceitos básicos de Python


Variáveis em Python
Com o operador ‘+’ é possível concatenar
as variáveis que são do tipo string.

205
Fundamentos de Programação

Conceitos básicos de Python


Variáveis em Python
A função len(nome_da_variável),
poderemos verificar a quantidade de caracteres
armazenados numa variável do tipo string.

206
Fundamentos de Programação

Conceitos básicos de Python


Variáveis em Python

207
Fundamentos de Programação

Conceitos básicos de Python


Variáveis em Python
Para acessar o último caractere de uma
variável do tipo string, não é necessário
saber o seu tamanho, basta escrever:
nome_variável [-1]

208
Fundamentos de Programação

Conceitos básicos de Python


Fatiando a Variável

209
Fundamentos de Programação

Conceitos básicos de Python


Para ler um texto
a partir do usuário
Para lermos um texto de um usuário para
armazenar numa variável utilizamos a
função input ().

210
Fundamentos de Programação

Conceitos básicos de Python


Números
Número inteiro para a variável num1 e;
Número real (float) para a variável num2.

211
Fundamentos de Programação

Conceitos básicos de Python


Potenciação
Basta utilizar o sinal **, no exemplo
abaixo (linha 6) a variável num1 cujo
valor é 2 terá uma potência de 4.

212
Fundamentos de Programação

Conceitos básicos de Python


Priorização de cálculos
matemáticos

213
Imagem: https://pixabay.com/pt/photos/contador-contabilidade-conselheiro-1238598/
Fundamentos de Programação

Conceitos básicos de Python


Números Inteiros
Para lermos um número através do usuário para
armazenar numa variável utilizamos a
função int() e depois a função input (),
conforme a tela abaixo (linha 1 e 2):

214
Fundamentos de Programação

Conceitos básicos de Python


Números Reais (float)
Utilizamos a função float() e depois a função
input (), conforme a tela abaixo (linha 1 e 2):

215
Fundamentos de Programação

Conceitos básicos de Python


Tipo Lógico
Para definir uma variável como do tipo
lógico (booleano) é necessário atribuir para
ela True (verdadeiro) ou False (Falso),
conforme o exemplo abaixo (linha 1).

216
Fundamentos de Programação

Conceitos básicos de Python


ATIVIDADE

1. O que são variáveis?

2. Qual a função no Python que é responsável por informar o


tipo da variável?

3. O que deve ser feito para ler uma variável do tipo inteiro?
Dê um exemplo.

4. O que deve ser feito para ler uma variável do tipo real (float)?
Dê um exemplo.

217
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Conceitos básicos de Python


ATIVIDADE
5. Faça um programa que calcule o valor de desconto para um
determinado produto, faça um Print Screen do código fonte
do seu programa e também do programa em execução.

6. Crie um programa para converter uma temperatura da


escala Celsius para a escala Fahrenheit. A fórmula para
conversão é Fahrenheit = ((Celsius * 9) / 5 ) + 32

7. Elabore um programa que calcule quantas notas de 50, 10


e 1 são necessárias para se pagar uma conta cujo valor é
fornecido.

218
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Conceitos básicos de Python


ATIVIDADE
8. Elabore um programa que permita a entrada de um
número inteiro e diga se ele é par ou ímpar.

9. Elabore um programa que permita a entrada de dois


valores, x e y, troque seus valores entre si e então exiba os
novos resultados.

219
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 10
Listas, tuplas e dicionários
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Listas, tuplas e dicionários


Tuplas
Para definir uma tupla, basta atribuir um
conjunto de informações para uma
variável, porém essas informações devem
estar entre parênteses.

221
Fundamentos de Programação

Listas, tuplas e dicionários


Listas
A diferença principal entre uma Lista e um Tupla
é que numa Tupla sabemos que as informações
são imutáveis (não mudam), já numa Lista as
informações são mutáveis (podem mudar).

222
Fundamentos de Programação

Listas, tuplas e dicionários

Abaixo utilizamos a função len()


para contar o tamanho dos elementos
das variáveis estacoes e alunos.

223
Fundamentos de Programação

Listas, tuplas e dicionários


Alterando um elemento de uma lista

224
Fundamentos de Programação

Listas, tuplas e dicionários


Colocando um novo elemento na lista

225
Fundamentos de Programação

Listas, tuplas e dicionários


Inserir um elemento a partir de um determinado índice

226
Fundamentos de Programação

Listas, tuplas e dicionários


Ordenação de uma lista

227
Fundamentos de Programação

Listas, tuplas e dicionários


Para remover um dado de uma lista

1ª Opção

2ª Opção

228
Fundamentos de Programação

Listas, tuplas e dicionários


Armazenando números inteiros e reais

229
Fundamentos de Programação

Listas, tuplas e dicionários

Dicionários
Os dicionários assim como as
Tuplas e Listas também podem
armazenar um conjunto de valores,
a diferença é que esses valores não
possuem uma sequência ordenada,
ou seja, o acesso aos valores não
ocorre por meio de índices e sim
por meio de keys (chaves).

230
Fundamentos de Programação

Listas, tuplas e dicionários

Dicionários
Na tela se quisermos visualizar as
informações armazenadas teremos
que utilizar as em vez de índices
para acessar os dados.

231
Fundamentos de Programação

Listas, tuplas e dicionários

Dicionários
Para checarmos a quantidade de
chaves de um dicionário podemos
utilizar a função len().

232
Fundamentos de Programação

Listas, tuplas e dicionários


Deletando uma chave

Para deletar uma chave devemos


utilizar o comando del
Nome_dicionario [nome_chave].

233
Fundamentos de Programação

Listas, tuplas e dicionários


Alterando os dados
de uma chave

Para alterar um dado de uma


chave, basta referenciar qual
chave deseja-se alterar e atribuir a
ela o valor desejado.

234
Fundamentos de Programação

Listas, tuplas e dicionários


Verificando se existe uma determinada
chave no dicionário

Basta fazer ‘nome_chave’ in


nome_dicionário.

235
Fundamentos de Programação

Listas, tuplas e dicionários


Lendo os valores armazenados
num dicionário
Para ler um valor armazenado
num dicionário, basta utilizar
um laço de repetição for.

236
Fundamentos de Programação

Listas, tuplas e dicionários


Lendo os valores armazenados
num dicionário
Para melhorar a apresentação
dos dados em tela, podemos
utilizar como exemplo o laço
de repetição.

237
Fundamentos de Programação

Listas, tuplas e dicionários


Podemos utilizar a função get() que pode trazer
uma informação para o usuário, ela possui uma
condição que se não aplicada pode, por exemplo,
mostrar uma mensagem de erro para o usuário.

238
Fundamentos de Programação

Listas, tuplas e dicionários


Limpando todas as chaves do dicionário
Ao utilizar a função clear(), serão removidas
todas as chaves e consequentemente serão deletados
todos os dados do dicionário.

239
Fundamentos de Programação

Listas, tuplas e dicionários


ATIVIDADE
1. Qual a diferença entre uma tupla e uma lista?

2. Qual a diferença entre um vetor comparado com as


duplas e listas?

3. Desenvolva um programa que calcule e exiba a diferença


entre o maior e o menor elemento de uma lista
denominada VALORES. Os valores da lista devem ser lidos.

4. Desenvolva um programa que faça a soma de todos os


elementos de índice par de uma lista.
240
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Listas, tuplas e dicionários


ATIVIDADE
5. Desenvolva um programa que possua duas listas A e B com 5
elementos cada e então troque seus elementos, de forma que a
lista A ficará com os elementos da lista B e vice versa.

6. Desenvolva um programa que utilizará a Cifra de César para


criptografar uma mensagem digitada pelo usuário, após, mostrar
em tela a mensagem criptografada.

7. Desenvolva um programa que armazenará números reais


numa lista. A seguir, encontre o menor elemento da lista e a sua
posição (índice) dentro da lista, mostre esses valores em tela.
241
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Listas, tuplas e dicionários


ATIVIDADE
8. Crie uma tupla com os signos do zodíaco e exiba os valores
dessa tupla em tela.

9. O que é um dicionário? Qual a principal diferença de um


dicionário se comparado com as tuplas e listas?

10. Crie um dicionário para um determinado animal de


estimação. Exiba em tela as informações armazenadas nesse
dicionário.

242
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 11
Condicionais
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Condicionais
Condicional Simples
As condicionais são parte fundamentais nos
programas, pois devemos tentar prever as
situações que podem ocorrer, principalmente
quando recebemos algum dado através do
usuário.

A condição if possui uma condição que


se for verdadeira executará alguma ação.
244
Fundamentos de Programação

Condicionais
Condicional Simples

245
Fundamentos de Programação

Condicionais
Condicional Composta
Utilizamos o comando else
para prever uma ação para
quando a condição inicial for
falsa, no exemplo abaixo o if
verifica se a idade é menor que
18, se for escreverá em tela
“Você é menor de idade”, caso
contrário (else) escreverá: “Você
é maior de idade”.

246
Fundamentos de Programação

Condicionais
Condicional Composta
No exemplo foi utilizado a condição
elif que permite que verifiquemos
mais uma possibilidade.

247
Fundamentos de Programação

Condicionais
Condicional Composta
Veja que combinando vários elif é
possível tentar prever várias
possiblidades e tomar uma ação para
cada uma delas.

No exemplo a seguir, também está


sendo utilizado o conectivo lógico
“and”, este conectivo lógico exige
que todas as condições sejam
verdadeiras para que a ação ocorra.
248
Fundamentos de Programação

Condicionais
Condicional
Composta
No exemplo estamos
utilizando o conectivo lógico
“or”, este conectivo lógico
exige que ao menos uma
condição seja verdadeira
para que seja tomada a
ação programada.
249
Fundamentos de Programação

Condicionais
ATIVIDADE
1. Qual a diferença entre uma condicional simples e uma condicional
composta?

2. Desenvolva um programa utilizando uma condicional simples, o


algoritmo deve verificar se o valor digitado é menor ou igual a 35.
Se a condição for verdadeira, deve aparecer uma mensagem: "O valor
digitado é menor ou igual a 35!".

3. Desenvolva um programa de sua preferência que tenha uma


condicional composta.

4. Desenvolva um programa que calcule e exiba a soma dos números


pares contidos entre 1 e um número fornecido pelo usuário.
250
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Condicionais
ATIVIDADE
5. A contribuição para o INSS é calculada a partir da tabela a seguir:

6. Desenvolva um programa para ler o valor de um salário bruto para


que seja calculado o valor da contribuição ao INSS e o salário líquido
restante.

251
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Condicionais
ATIVIDADE
7. Desenvolva um programa que leia um número inteiro e verifique se
este é ou não um número primo (número primo é divisível por um e por
ele mesmo).

8. Um número palíndromo é aquele que se lido da esquerda para a


direita e da direita para a esquerda possui o mesmo valor (por exemplo:
34543). Desenvolva um programa que leia um número inteiro e
verifique se ele é um palíndromo.

252
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 12
Laços de Repetição
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Laços de Repetição

Os laços de repetição são


muito utilizados nos sistemas
para fazer algum tipo de
consistência de dados do
usuário, ocorre que por
engano ou distração o usuário
pode entrar com informações
inválidas que se não forem
consistidas podem prejudicar
a base de dados dos sistemas.
254
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Laços de Repetição
WHILE (enquanto)
Um exemplo do laço de repetição
while (ver linha 3), note que
enquanto a condição for verdadeira
os comandos do laço serão
executados.

Note que no caso abaixo, cada


execução é acrescentada +1 na
variável x.
255
Fundamentos de Programação

Laços de Repetição
WHILE (enquanto)
No exemplo serão lidos nomes
digitados pelo usuário e todo
nome digitado é armazenado na
variável pessoas que é uma Lista.

Os nomes são adicionados


através da função append().

256
Fundamentos de Programação

Laços de Repetição
WHILE (enquanto)
No laço de repetição o looping
será eterno até que o usuário
digite o nome “Pedro”.

257
Fundamentos de Programação

Laços de Repetição
FOR (para)
O laço de repetição FOR no
exemplo, faz com que a variável
“i” percorra todos os elementos
da Lista até que não tenha mais
elementos.

258
Fundamentos de Programação

Laços de Repetição
FOR (para)
Lembrem-se que uma string armazena
caractere por caractere de um texto, ou
seja, cada caractere necessita estará
num índice.

Portanto se fizermos o laço de


repetição utilizando o “for” conforme
as linhas 3 e 4, iremos ler caractere por
caractere da palavra que estiver
armazenada na variável.
259
Fundamentos de Programação

Laços de Repetição
FOR (para)
Podemos utilizar o “for”,
para contar todos os
números de uma lista.

260
Fundamentos de Programação

Laços de Repetição
FOR (para)
Também podemos utilizar
o “for” para exibir as
chaves e os dados de um
dicionário:

261
Fundamentos de Programação

Laços de Repetição
FOR (para)
Podemos mostrar números
ordenados conforme o
modelo.

262
Fundamentos de Programação

Laços de Repetição
ATIVIDADE
1. Considere o algoritmo abaixo:

Adapte o algoritmo acima, e desenvolva um programa que execute as


instruções para os seguintes pares de números: 10 e 2, 6 e 2, 15 e 3.
Qual será o valor final de C? E o valor final de A?
263
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Laços de Repetição
ATIVIDADE
2. Desenvolva um programa que escreva na tela os números
de um número inicial a um número final. Os números inicial
e final devem ser informados pelo usuário;

3. Desenvolva um programa que gera e escreve os números


ímpares entre 100 e 200;

4. Desenvolva um programa que leia 10 números inteiros e,


ao final, apresente a soma de todos os números lidos;

5. Desenvolva um programa que calcule a média dos


números digitados pelo usuário, se eles forem pares.
Termine a leitura se o usuário digitar zero (0);
264
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Laços de Repetição
ATIVIDADE
6. Desenvolva um programa que leia valores inteiros e encontre o
maior e o menor deles. Termine a leitura se o usuário digitar zero (0);

7. Desenvolva um programa que leia o sexo de uma pessoa. O sexo


deverá ser com o tipo de dado caractere e o programa deverá aceitar
apenas os valores “M” ou “F”.

8. Desenvolva um programa que calcule a soma de todos os números


primos existentes entre 1 e 100;

265
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Laços de Repetição
ATIVIDADE
9. Desenvolva um programa para calcular o IMC (Índice de
Massa Corporal), o algoritmo deverá ler a altura e o peso do
usuário e depois calcular o IMC com base na fórmula:
IMC = peso/ (altura) ².

Após o cálculo deve ser informado o valor do IMC do usuário


e a classificação com base na tabela.

Deve-se utilizar um laço de repetição para consistir se o


usuário digitou um valor de peso e altura maiores do que 0.
Enquanto ele digitar um valor menor ou igual a zero deverá
aparecer uma mensagem de erro de: “Peso e altura devem
ser maiores que 0. ”
266
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Laços de Repetição
ATIVIDADE
10. Utilizando o laço de repetição PARA, desenvolva um programa que
faça uma tabuada, para isso leia um número de 1 a 10, se o usuário
digitar um valor fora desse intervalo deve aparecer uma mensagem de
erro: “Digite um valor entre 1 e 10. ”

A tela esperada deve conter os valores da tabuada para o número


digitado pelo usuário.

267
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 13
Validação de dados
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Validação de dados
A validação de dados é algo
extremamente necessária, visto
que o sistema deve prever a
possibilidade de falhas humanas
durante a interação com o usuário
através de leitura de dados em
tela.

Para validar as informações


digitadas pelos usuários, é
necessário muitas vezes utilizar
laços de repetição, como no
exemplo onde foi utilizado “while”.
269
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Validação de dados
No abaixo, é utilizado o comando
try onde podemos fazer uma
condição que se não atendida fará
outra ação, isso é possível através
do comando except (ver linha 19).

270
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Validação de dados

271
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Validação de dados
ATIVIDADE

1. Qual a importância em validarmos os dados digitados pelo usuário?


2. Crie um programa que faça a validação para um campo de e-mail.
3. Crie um programa que faça a validação para um campo nome.
4. Crie um programa que faça a validação do CPF.
5. Crie um programa que faça a validação do RG.
6. Crie um programa que faça uma validação de data.
7. Crie um programa que faça validação de hora.
8. Crie um programa que faça validação de campo vazio

272
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 14
Funções
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Funções
As funções servem para guardarmos
um bloco de código que poderá ser
reutilizado quando precisarmos.

É comum nos códigos estruturados


fazer uso de funções. E, para
“alimentar” essas funções,
precisamos passar os dados a elas.

Existem dois métodos de passagem


de parâmetros geralmente usados:
por valor e por referência.

274
Imagem: https://pixabay.com/pt/illustrations/anal%c3%adtica-em-forma%c3%a7%c3%a3o-inova%c3%a7%c3%a3o-3088958/
Fundamentos de Programação

Funções
Quando um parâmetro é passado por valor,
uma cópia do valor contido é passada à
função, e este valor inicia uma variável local.
As funções também servem
para organizar melhor o
Quando um parâmetro é passado por código fonte.
referência, o endereço de memória em que
a variável está é passado para a função. Podemos ter funções que
somente imprimirão em
A função tem acesso real ao dado passado,
e toda a alteração que ocorrer dentro da
tela algum valor e teremos
função irá impactar a variável. as funções que retornarão
valores
275
Fundamentos de Programação

Funções
Exemplo de uma função que faz
uma saudação para o usuário.

276
Fundamentos de Programação

Funções
No exemplo foi criado a função
mensagem2( ), ela receberá
como parâmetro uma string
com o nome do usuário.

277
Fundamentos de Programação

Funções

Criamos uma função que calcula a


média, note que essa função foi
criada para receber 3 parâmetros
e que ela retornará a média.

278
Fundamentos de Programação

Funções
As funções são módulos de códigos
que irão realizar as tarefas
repetitivas dos programas. Sempre
que surgir a necessidade,
poderemos chamá-las a fim de
economizar tempo, visto que
escrever uma linha de código para
toda tarefa repetida é algo
cansativo.

As funções podem ser chamadas em


qualquer parte do programa e
normalmente retornam algum valor.
279
Fundamentos de Programação

Funções
ATIVIDADE

1. O que são funções?

2. Qual a diferença entre uma função e um procedimento?

3. Com base no exemplo 2, desenvolva um programa que irá ler dois


valores inteiros. Crie uma função para cada uma das seguintes
operações matemáticas: soma, subtração, multiplicação e divisão. No
final o resultado das operações deverá ser exibido em tela.

280
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Funções
ATIVIDADE
4. Desenvolva um programa que possuirá uma função chamada de
pagamento, ela deverá receber as horas trabalhadas e o valor das
horas. No final o valor a ser pago para o trabalhador deverá ser
retornado pela função e depois exibido em tela.

5. Desenvolva um programa que possuirá uma função que receba o


nome do usuário e a idade dele, a função deverá retornar quantos dias
de vida o usuário já viveu.

6. Construa uma função que receba uma data no formato


DD/MM/AAAA e devolva uma string no formato D de mesPorExtenso
de AAAA.
Opcionalmente, valide a data e retorne NULL caso a data seja inválida.
281
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

TEMA 15
Módulos
Imagem: https://pixabay.com/pt/illustrations/banner-cabe%c3%a7alho-monitor-bin%c3%a1rio-909710/
Fundamentos de Programação

Módulos

Os módulos são arquivos com


a extensão “.py”, ou seja, os
arquivos que criamos até o
momento são módulos.

Os módulos podem ser


conectados, eles abrem novas
possibilidades no Python.

283
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Fundamentos de Programação

Módulos

No exemplo extrairemos do módulo


“exemplo_funcoes.py“ a parte
que faz o cálculo da média.

284
Fundamentos de Programação

Módulos
Para linkar os módulos são
necessários que ambos estejam na
mesma pasta, na tela estamos
salvando o nosso módulo
“func.py” que faz o cálculo da
média.

Note que o módulo “func” possui as


informações extraídas do módulo
anterior.

285
Fundamentos de Programação

Módulos
O módulo “exemplo_funcoes.py”
também será salvo na mesma pasta
do módulo “func.py”

286
Fundamentos de Programação

Módulos
Para que o módulo exemplo_funcoes.py possa
linkar o módulo “func.py” basta usarmos o
comando import nome_módulo.

287
Fundamentos de Programação

Módulos
Módulos do próprio Python

O módulo math é um módulo


matemático, note no modelo que o
math.ceil() faz o arredondamento
para cima de um número real.

288
Fundamentos de Programação

Módulos
Módulos do próprio Python

O módulo math.floor, faz o


contrário, faz o arredondamento
para baixo.

289
Fundamentos de Programação

Módulos
Módulos do próprio Python

O módulo math.fsum() faz a soma


de números de listas e tuplas.

290
Fundamentos de Programação

Módulos
Módulos do próprio Python

O módulo math.sqrt() faz o cálculo


da raiz quadrada de um número.

291
Fundamentos de Programação

Módulos
Módulos do próprio Python

Há também módulos de tempo, por


exemplo, o módulo time.localtime()
trará a hora local.

292
Fundamentos de Programação

Módulos
Módulos do próprio Python
Note que através do módulo
time.localtime() podemos extrair
mais informações como minutos, horas
ou segundos, veja as linhas 3 e 5.

293
Fundamentos de Programação

Módulos
ATIVIDADE

1. O que é um módulo?

2. Qual as vantagens em utilizarmos os módulos?

3. Crie um módulo que faça o cálculo da média aritmética entre dois


números, este módulo deve ser importado (chamado) através de outro
programa.

4. Crie um módulo que faça o cálculo área do triângulo, este módulo


deve ser importado (chamado) através de outro programa.

294
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Fundamentos de Programação

Módulos
ATIVIDADE
5. Crie um módulo que faça o cálculo do
IMC (Índice de Massa Corporal), o
programa que for fazer a chamada desse
módulo deverá classificar através do valor
retornado se a pessoa está ou não acima
do peso. IMC = peso / altura²

295
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Disciplina:
Banco de Dados
Banco de Dados

TEMA 01
Introdução
Imagem: https://pixabay.com/pt/illustrations/bolsa-de-valores-economia-mundial-913956/
Banco de Dados

Introdução
Um sistema de banco de dados adiciona
uma nova dimensão à estrutura de
gerenciamento de uma organização.

A complexidade dessa estrutura


depende do tamanho da organização,
de suas funções e de sua cultura
empresarial.

Os sistemas de banco de dados podem


ser criados e gerenciados em diferentes
níveis de complexidade e com adesão
variável a padrões precisos.
298
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Introdução

Um Banco de Dados pode ser


definido como um conjunto de
dados organizados e relacionados.

A definição de dados compreende


como o uso de “fatos conhecidos”
que podem ser armazenados e que
possuem um significado importante.

299
Imagem: https://pixabay.com/pt/illustrations/finan%c3%a7a-contabilidade-poupan%c3%a7a-2837085/
Banco de Dados

Introdução
• É uma coletânea lógica coesa de dados
com um significado intrínseco; dados
A definição do termo Banco de
desordenados não podem ser
Dados é atende às seguintes referenciados como um banco de dados;
propriedades:
• É projetado, construído e populado com
dados com objetivos específicos; possui
um conjunto pré-definido de usuários e
aplicações;

• Simula aspectos do mundo real, sendo


que quaisquer alterações no cenário a
que ele representa são automaticamente
refletidas no banco de dados.
300
Imagem: https://pixabay.com/pt/vectors/banco-de-dados-armazenar-dados-4941301/
Banco de Dados

Introdução
À informação em um banco está
organizada em forma de registros.

Cada registro contém toda à


informação sobre uma pessoa ou
um elemento do banco.

Por exemplo, cada registro no


diretório telefônico contém um
nome, endereço e número
telefônico de uma pessoa.

301
Imagem: https://pixabay.com/pt/vectors/suporte-vector-comunicar-se-1950883/
Banco de Dados

Introdução

Cada registro contém campos.


Um campo é utilizado para
armazenar o endereço e outro
campo para armazenar o número O nome de um campo geralmente
telefônico da pessoa. identifica à informação armazenada
no campo.
Cada registro contém cada um
destes campos e cada registro pode Por exemplo, os campos podem se
ter informação nestes campos. chamar Nome, Endereço ou Número
telefônico.

302
Banco de Dados

Introdução

Um SGBD permite aos usuários


criarem e manipularem bancos de
dados de propósito geral.

O conjunto formado por um banco


de dados mais as aplicações que o
manipulam é chamado de Sistema
de Banco de Dados.

303
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Introdução
Vantagens e desvantagens • quando é necessária a atualização
do uso de um SGBD de um arquivo específico de
usuário ou grupo, todos os dados
devem ser atualizados para manter
1. Controle de Redundância a sua integridade no ambiente,
Quando se trata do sistema de como um todo;
armazenamento e processamento de • dados redundantes levam a um
arquivos, sem utilizar um SGBD, os dados são armazenamento excessivo de
responsabilidade dos usuários que os utilizam. informações, tomando espaço que
poderia estar sendo utilizado com
Neste caso, as redundâncias são inevitáveis e novas informações.
surgem as seguintes dificuldades:
304
Banco de Dados

Introdução
Vantagens e desvantagens
O que é fundamental e essencial para
do uso de um SGBD múltiplos acessos das aplicações
integradas ao banco de dados.
2. Compartilhamento de Dados
Deve ainda, ter o controle de
concorrência para garantir que as
Um SGBD multiusuário deve consentir atualizações estejam corretas.
que muitos usuários acessem o banco
de dados ao mesmo tempo.
Deve, também, oferecer recursos
para a multiplicidade de visões

305
Banco de Dados

Introdução
Vantagens e desvantagens
do uso de um SGBD
3. Restrição a Acesso não Autorizado
O SGBD precisa conter a segurança no
acesso às contas de usuários, com as
devidas restrições de acordo com os
perfis de cada conta, sendo aplicado
tanto para o acesso, como às aplicações
que são gerenciadas por ele.

306
Imagem: https://pixabay.com/pt/illustrations/c%c3%adber-seguran%c3%a7a-tecnologia-rede-3374252/
Banco de Dados

Introdução
Vantagens e desvantagens
do uso de um SGBD
4. Representação de Relacionamentos
Complexos entre Dados
Um banco de dados tem em si um
conjunto de dados relacionados de
muitas formas. O SGBD deve gerenciar
todos os relacionamentos entre os
dados, assim como, guardar, recuperar e
atualizar de forma dinâmica e eficaz.
307
Imagem: https://pixabay.com/pt/vectors/big-data-dados-base-de-dados-7216839/
Banco de Dados

Introdução
Vantagens e desvantagens
do uso de um SGBD
5. Tolerância a Falhas

Um SGBD precisa gerenciar e


oferecer formas de recuperação a
falhas, sejam físicas ou lógicas.

308
Imagem: https://pixabay.com/pt/illustrations/teclado-digitaliza%c3%a7%c3%a3o-dedo-7234958/
Banco de Dados

Introdução
Vantagens e desvantagens Problemas adicionais podem surgir caso
os projetistas de banco de dados ou os
do uso de um SGBD administradores de banco de dados não
elaborem os projetos corretamente ou
Desvantagens se as aplicações não são implementadas
de forma apropriada;

Se o Administrador do banco de dados


Quando o uso de um SGBD representar (DBA – Database Administrator) não
um alto custo em comparação aos administrar o banco de dados de forma
sistemas de processamento tradicional adequada, tanto a segurança quanto a
de arquivos; integridade dos sistemas podem ser
comprometidas.
309
Banco de Dados

Introdução
ATIVIDADE
1. O que são banco de dados?

2. Explique o conceito de generalidade e alto grau de


abstração de banco de dados.

3. Comente por que é importante a eficiência dos


sistemas atualmente?

4. Como é possível atingir usos muito mais sofisticados


dos recursos de dados?
310
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Introdução
ATIVIDADE
5. Como eram as primeiras arquiteturas de banco de dados?

6. O que é um SGBDR?

7. O que é um SGBD ou Sistema Gerenciador de Bancos de


Dados e qual é a sua melhoria em relação ao armazenamento
de dados em arquivos?

8. Quais os benefícios de usar um sistema de banco de dados


para uma empresa?

311
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Introdução
ATIVIDADE

9. Se o Administrador do banco de dados (DBA –


Database Administrator) não administrar o banco de
dados de forma adequada, o que será comprometido?

10. Algumas empresas ainda usam abordagem


processamento tradicional de arquivos, quais motivos
disso ainda acontecer?

312
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Introdução
Componentes do SGBD

Um SGBD executa várias funções


importantes que garantem a
integridade e a consistência dos
dados no banco.

A maioria dessas funções é


transparente para o usuário final e
pode ser conseguida apenas pelo
uso de um SGBD.

313
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-estatisticas-2296821/
Banco de Dados

Introdução
Componentes do SGBD
Gerenciamento do Este utiliza o dicionário de dados
dicionário de dados para procurar os relacionamentos
e de componentes de estruturas
O SGBD armazena as definições de de dados necessárias, livrando o
elementos de dados e seus usuário de ter de codificar esses
relacionamentos (metadados) em
relacionamentos complexos em
um dicionário de dados.
cada programa.
Por sua vez, todos os programas
que acessam os dados no banco
trabalham por meio do SGBD.
314
Banco de Dados

Introdução
Componentes do SGBD
Gerenciamento de
armazenamento de dados

Um SGBD moderno fornece armazenamento


não apenas para os dados, mas também
para as definições de telas, formulários de
entrada de dados relacionados, as definições
de relatórios, as regras de validação de
dados, o código procedural, as estruturas
para lidar com formatos de vídeo e imagem
e assim por diante.
315
Imagem: https://pixabay.com/pt/illustrations/seo-dados-big-data-anal%c3%adtica-local-3559564/
Banco de Dados

Introdução
Componentes do SGBD
O SGBD isenta o usuário da
Transformação e desagradável tarefa de
apresentação de dados distinguir entre os formatos de
dados lógicos e físicos.

O SGBD transforma os dados Ou seja, o SGBD formata os


inseridos em conformidade com a dados recuperados fisicamente
estrutura de dados necessárias. para conformá-los às
expectativas lógicas do usuário.

316
Banco de Dados

Introdução
Componentes do SGBD
Gerenciamento de segurança

As regras de segurança determinam


quais usuários podem acessar o banco
de dados, quais itens de dados cada
usuário pode acessar e quais operações
de dados (leitura, adição, exclusão ou
modificação) o usuário pode executar.
Isso é especialmente importante em
sistemas de dados multiusuários.

317
Imagem: https://pixabay.com/pt/illustrations/c%c3%adber-seguran%c3%a7a-3400657/
Banco de Dados

Introdução
Componentes do SGBD
Controle de acesso

Para fornecer integridade e


consistência de dados, o SGBD
utiliza algoritmos sofisticados,
garantindo que vários usuários
possam acessar o banco de
dados ao mesmo tempo sem
comprometer sua integridade.

318
Imagem: https://pixabay.com/pt/photos/teclado-vazio-bin%c3%a1rio-zero-1-4904427/
Banco de Dados

Introdução
Componentes do SGBD
Gerenciamento de O gerenciamento de
backup e recuperação recuperação trata da
recuperação do banco
O SGBD fornece backup e recuperação de de dados após uma
dados para garantir a segurança e falha, como um erro de
integridade dos dados. setor no disco ou uma
Os sistemas atuais de SGBD oferecem
utilitários especiais que permitem ao DBA
queda de energia.
executar backups especiais e de rotina,
procedimentos de restauração.

319
Banco de Dados

Introdução
Componentes do SGBD
Os relacionamentos de dados
Gerenciamento de
armazenados no dicionário de dados
integridade de dados
são utilizados para garantir a
integridade.

O SGBD promove e aplica regras Tal garantia é especialmente


de integridade, minimizando, importante em sistemas de banco
assim, a redundância de dados e
maximizando sua consistência.
de dados orientado às transações

320
Banco de Dados

Introdução
Componentes do SGBD
Linguagem de acesso a banco de A linguagem estruturada de
dados e interface de programação consulta (SQL) é uma
de aplicações. linguagem de consulta
vigente e o padrão de
O SGBD fornece acesso aos dados por meio
acesso de dados suportado
de uma linguagem de consulta. A linguagem pela maioria dos
de consulta é uma linguagem não procedural, fornecedores de SGBD.
ou seja, permite que o usuário que o usuário
especifique o que deve ser feito, sem ter de
especificar como deve fazer.
321
Banco de Dados

Introdução
Componentes do SGBD
Por exemplo, o SGBD pode
Interface de comunicação do
fornecer acesso ao banco de
banco de dados
dados pela internet por meio do
uso de navegadores web.

Os SGBD´s da geração atual Nesse ambiente, as comunicações


aceitam solicitações do usuário podem ser realizadas de diversas
final por meio de vários
ambientes de rede diferentes.
maneiras.

322
Banco de Dados

Introdução
DESAFIO

Apresente as funcionalidades de
um SGBD de forma prática.

323
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

TEMA 02
Modelagem de Banco de Dados
Imagem: https://pixabay.com/pt/illustrations/bolsa-de-valores-economia-mundial-913956/
Banco de Dados

Modelagem de Banco de Dados

Um modelo de dados é uma


abstração de um ambiente de
dados real e complexo.

Os projetistas de banco de dados


utilizam os modelos de dados para
se comunicar com programadores
e usuários de aplicações.

325
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Modelagem de Banco de Dados

Os componentes básicos de modelagem


de dados são as entidades, os atributos,
os relacionamentos e as restrições.

As regras de negócio são utilizadas para


identificar e definir os componentes
básicos de modelagens em um ambiente
específico real.

326
Imagem: https://pixabay.com/pt/vectors/esquema-de-banco-de-dados-1895779/
Banco de Dados

Modelagem de Banco de Dados

O objetivo da modelagem de dados é


garantir que todos os objetos de
dados existentes em determinado
contexto e requeridos pela aplicação
estejam representados com precisão
dentro do Banco de Dados.

327
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Modelagem de Banco de Dados


1. MODELO CONCEITUAL
Essa modelagem é feita utilizando o
modelo entidade-relacionamento.
O Modelo Conceitual é uma abstração da Tem como características:
realidade, em que os aspectos do mundo
real são descritos de forma natural, bem • Visão Geral do negócio;
como seus atributos e relacionamentos. • Facilita o entendimento entre
usuários e desenvolvedores;
Esse modelo é utilizado para • Possui somente as entidades e
entendimento, transmissão, validação de atributos principais;
conceitos e mapeamento do ambiente, • Pode conter relacionamentos
possibilitando um melhor diálogo entre muitos para muitos.
desenvolvedores e usuários.
328
Banco de Dados

Modelagem de Banco de Dados


1. MODELO CONCEITUAL

VANTAGENS:

Em primeiro lugar, fornece uma visão de


cima (nível macro) compreendida de
modo relativamente fácil sobre o
ambiente de dados.

Em segundo lugar, o modelo conceitual é


independente em relação tanto a
software como a hardware.
329
Imagem: https://pixabay.com/pt/vectors/banco-de-dados-armazenar-dados-4941301/
Banco de Dados

Modelagem de Banco de Dados


2. MODELO LÓGICO
CARACTERÍSTICAS:

• Deriva do modelo conceitual e visa a


Leva em conta limites impostos representação do negócio;
por algum tipo de tecnologia de • Possui entidades associativas em lugar de
banco de dados (banco de dados relacionamentos muitos para muitos;
hierárquico, banco de dados • Define as chaves primárias das entidades;
relacional, entre outros. • Normalização até a 3ª forma normal
• Adequação ao padrão de nomenclatura;
• Entidades e atributos documentados.

330
Banco de Dados

Modelagem de Banco de Dados


3. MODELO INTERNO O modelo interno exige que o
projetista relacione as características
Uma vez selecionado o SGBD e restrições do modelo conceitual
específico, o modelo interno com as do modelo selecionado para
mapeia o modelo conceitual para implementação.
o SGBD.
O esquema interno constitui a
O modelo interno é a representação específica de um
representação do banco de dados modelo interno, utilizando estruturas
conforme “visto” pelo SGBD. de banco de dados suportadas pelo
banco escolhido.

331
Banco de Dados

Modelagem de Banco de Dados


4. MODELO FÍSICO

Leva em consideração limites


impostos pelo SGBD (Sistema PRINCIPAIS CARACTERÍSTICAS:
Gerenciador de Banco de dados)
e pelos requisitos não funcionais • Elaborado a partir do modelo lógico
dos programas que acessam os • Pode variar segundo o SGBD
dados. • Pode ter tabelas físicas (log)
• Pode ter colunas físicas (replicação)

332
Banco de Dados

Modelagem de Banco de Dados


4. MODELO FÍSICO

O modelo físico exige a definição tanto


dos dispositivos de armazenamento físico
como dos métodos de acesso (físico)
necessários para se chegar aos dados nos
dispositivos de armazenamento, o que
torna dependente tanto de software
quanto de hardware.

333
Imagem: https://pixabay.com/pt/photos/caderno-digitando-caf%c3%a9-computador-1850613/
Banco de Dados

Modelagem de Banco de Dados


Representação do MER
4. MODELO DE DADOS RELACIONAL como um Diagrama
Entidade-Relacionamento/
Entre os modelos de dados de implementação, o Fonte:Medium.
modelo relacional é o mais simples, com
estrutura de dados uniforme, e o mais formal.

O modelo de dados relacional representa os


dados da base de dados como uma coleção de
relações.

Cada relação pode ser entendida como uma


tabela ou um simples arquivo de registros.
334
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Modelagem de Banco de Dados


DDL - SQL
O padrão SQL surgiu para Para conseguirmos utilizar essa
acessarmos e pesquisarmos dados linguagem, precisamos instalar um
armazenados e estruturados de SGBD que será o nosso servidor de
uma forma específica. banco de dados, como por
exemplo, o MySQL, Oracle ou
É uma linguagem de consultas SQLServer.
estruturadas, Structured Query
Language, ou simplesmente SQL.

335
Banco de Dados

Modelagem de Banco de Dados


Modelo Entidade-Relacionamento
As entidades podem ser objetos físicos,
O objeto básico que o MER como clientes e produtos, mas também
representa é a entidade. Os abstrações como rotas de voo ou
blocos básicos de construção apresentações musicais.
de todos os modelos de dados
são as entidades, os atributos, Pode ser definida como qualquer coisa do
os relacionamentos e as mundo real, abstrata ou concreta, onde se
restrições. deseja guardar informações. Exemplos de
entidades: Cliente, Veículo, Produto, Venda.

336
Banco de Dados

Modelagem de Banco de Dados


Modelo Entidade-Relacionamento

Um atributo é uma característica


de uma entidade. É tudo o que se
pode relacionar como propriedade da
entidade (coluna, campo). Por exemplo uma entidade
chamada cliente seria descrita por
Chama-se Domínio o conjunto de atributos como nome, sobrenome,
valores possíveis do atributo. telefone, endereço e limite de
crédito de clientes.

337
Imagem: https://pixabay.com/pt/illustrations/avatar-clientes-%c3%adcones-empres%c3%a1rios-2191918/
Banco de Dados

Modelagem de Banco de Dados


Modelo Entidade-Relacionamento
Alguns atributos são obrigatórios outros
são opcionais. Algumas definições:

• Atributo obrigatório – é aquele que para


uma entidade ou relacionamento deve
possuir um valor.
• Atributo opcional - É aquele que para
uma instância da entidade ou
relacionamento pode possuir um valor
ou não.
338
Imagem: https://pixabay.com/pt/illustrations/avatar-clientes-%c3%adcones-empres%c3%a1rios-2191918/
Banco de Dados

Modelagem de Banco de Dados


Modelo Entidade-Relacionamento
• Chave Candidata - Atributo
CLASSIFICAÇÃO DOS ATRIBUTOS ou grupamento de atributos
que têm a propriedade de
• Atributo Identificador - capaz de identificar unicamente uma
identificar exclusivamente cada ocorrência ocorrência da entidade.
de uma entidade. Também conhecido como
chave Primária ou Primary Key (PK). Pode vir a ser uma chave Primária.
A chave candidata que não é
O símbolo # é usado para representar a chave chave primária também se chama
primária em algumas notações) chave Alternativa.

Ex.: Código do Cliente, Código do Produto


339
Banco de Dados

Modelagem de Banco de Dados


Modelo Entidade-Relacionamento
CARACTERÍSTICAS – CHAVE PRIMÁRIA • Os atributos identificadores devem
ser o conjunto mínimo que pode
• Não pode haver duas ocorrências de uma identificar cada instância de uma
mesma entidade com o mesmo conteúdo na entidade.
Chave Primária. • Não devem ser usadas chaves
• A chave primária não pode ser composta por externas ou atributos sobre os quais
atributo opcional, ou seja, atributo que você não tem controle.
aceite nulo. • Não deve conter informação volátil.

340
Banco de Dados

Modelagem de Banco de Dados


Modelo Entidade-Relacionamento

Um relacionamento pode ser


entendido como uma associação entre
instâncias de Entidades de acordo com as
regras de negócio.

Normalmente ocorre entre instâncias de


duas ou mais Entidades, podendo ocorrer
entre instâncias da mesma Entidade (auto
relacionamento).
341
Imagem: https://pixabay.com/pt/illustrations/matriz-rede-troca-de-dados-1027571/
Banco de Dados

Modelagem de Banco de Dados


Relacionamento
um para muitos (1:M ou 1..*)
Por exemplo um pintor faz várias pinturas, mas
cada uma é criada por apenas um artista.
Assim o pintor (uma entidade) relaciona-se
com as pinturas (várias entidades).

Portanto, os projetistas de banco de dados


identificam o relacionamento PINTOR pinta
PINTURA como 1:M

342
Imagem: https://pixabay.com/pt/illustrations/pintor-escovar-parede-de-casa-1180676/
Banco de Dados

Modelagem de Banco de Dados


Relacionamento de
muitos para muitos (M: N ou *..*)
Um funcionário pode aprender várias
habilidades profissionais e cada habilidade
profissional pode ser aprendida por vários
funcionários.

Os projetistas de banco de dados identificam o


relacionamento FUNCIONÁRIO aprende
HABILIDADE como M: N

343
Imagem: https://pixabay.com/pt/photos/funcion%c3%a1rios-equipe-corporativo-885338/
Banco de Dados

Modelagem de Banco de Dados


Relacionamento
um para um (1:1 ou 1..1)
A estrutura de gerenciamento de uma
empresa de varejo pode exigir que cada uma
de suas lojas seja gerenciada por um único
funcionário.

Por sua vez, cada gerente de loja, que é um


funcionário, gerencia uma loja apenas.
Portanto o relacionamento FUNCIONÁRIO
gerencia LOJA é identificado como 1:1.
344
Imagem: https://pixabay.com/pt/vectors/loja-3d-isom%c3%a9trica-modelo-oferta-3629607/
Banco de Dados

Modelagem de Banco de Dados


A discussão precedente identificou cada
relacionamento em duas direções, ou seja, os
relacionamentos são bidirecionais:

Um CLIENTE pode gerar várias FATURAS.

Cada uma das várias FATURAS é gerada apenas


por um CLIENTE.

As restrições são importantes, pois ajudam a


assegurar a integridade dos dados. Elas
normalmente são expressas na forma de regras.
345
Imagem: https://pixabay.com/pt/vectors/registro-caixa-registradora-moderno-23666/
Banco de Dados

Modelagem de Banco de Dados


Regras de Negócios
Uma regra de negócio é uma descrição breve,
precisa e sem ambiguidades de uma política,
procedimento ou princípio em uma
determinada organização.
Devem ser fornecidas por
As regras de negócio decorrentes de uma escrito e atualizadas para
descrição detalhada das operações de uma incluir qualquer alteração
organização ajudam a criar e aplicar ações no desse ambiente operacional.
interior de seu ambiente organizacional.

346
Banco de Dados

Modelagem de Banco de Dados


Regras de Negócios • Auxiliam a estandardizar a visualização dos
dados de uma empresa;
Regras de negócio escritas • Podem constituir uma ferramenta de
adequadamente são utilizadas comunicação entre os usuários e os projetistas;
para definir entidades, • Permitem que o projetista compreenda a
atributos, relacionamentos e natureza, o papel e o escopo dos dados;
restrições. • Permitem que o projetista compreenda os
processos comerciais;
O processo de identificar e • Permitem que o projetista desenvolva regras e
documentação de regras de restrições adequadas de participações em
negócio é essencial para o relacionamentos e crie um modelo de dados
projeto de banco de dados: preciso.
347
Banco de Dados

Modelagem de
Banco de Dados
Diagrama Entidade
Relacionamento (DER)
O diagrama permite a visualização
das informações, pois o modelo
pode ficar muito abstrato sem estar
representado graficamente.

Para criar a representação gráfica,


existem algumas regras, conhecidas
como notações do DER.
348
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Modelagem de
Banco de Dados

Modelo
Diagrama Entidade
Relacionamento (DER)

349
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Modelagem de Banco de Dados


ATIVIDADE
1. Qual o conceito de entidade?
2. Como são representadas as entidades no modelo entidade
relacionamento?
3. Crie três entidades abstratas e três entidades concretas?
4. O que são relacionamentos?
5. Explique as restrições de dados?
6. O que é uma instância de entidade?
7. Quais são os tipos de relacionamentos disponíveis?
8. Explique os relacionamentos bidirecionais?
9. Explique as regras de negócio?
10. Os atributos são responsáveis por qual função no MER?
350
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

TEMA 03
Regras de Normalização
Imagem: https://pixabay.com/pt/illustrations/bolsa-de-valores-economia-mundial-913956/
Banco de Dados

Regras de Normalização Integridade: diz respeito à qualidade do


dado. Um dado mapeado em mais de um local
de modo diferente, com valores instanciados
Benefícios da Normalização de modo diferentes, pode ser indício de que
não há integridade entre eles.

Estabilidade do modelo lógico: Economia: no espaço de armazenamento em


capacidade de um modelo manter-se relação ao custo de manipulação de dados
inalterado face às (que representa todo e qualquer esforço,
mudanças que venham a ser percebida ou tempo, ou valor agregado ao fato de
introduzidas no ambiente que tenha sido manipularmos volumes de dados maiores do
modelado. que os efetivamente necessários);

Flexibilidade: capacidade de adaptação a Fidelidade ao ambiente observado: ajuda


demandas diferenciadas, a expansão e a definir elementos que foram despercebidos
redução, a omissão ou presença etc. durante o processo de modelagem.
352
Banco de Dados

Regras de Normalização
Primeira Forma Normal – 1FN
Remova o(s) atributo(s) que
viola(m) a primeira forma normal e
coloque-o em uma relação em
separado (Autores_Livros),
juntamente com a chave primária
da relação original (IdLivro).

A chave primária da nova relação é


composta da chave primária da
relação original mais uma chave
candidata dos atributos da nova
relação.
353
Banco de Dados

Regras de Normalização
Primeira Forma Normal – 1FN
Poderão ser utilizados tantos
atributos quantos forem
necessários à formação da chave da
nova relação, mesmo que tenhamos
que chegar a concatenação de
todos os atributos de uma linha.

Na prática, o grande número de


colunas formando a chave pode
causar transtornos, por isso, nesse
caso, pode-se criar uma coluna-
artificial do tipo contador
354
Banco de Dados

Regras de Normalização
Segunda Forma Normal – 2FN
Uma relação encontra-se na
segunda forma normal quando
estiver na primeira forma normal e
todos os atributos que não
participam da chave primária são
dependentes desta. Verificar se
todos os atributos são
dependentes da chave primária e
retirar-se da relação todos os
atributos de um grupo não
dependente que dará origem a
uma nova relação, que conterá
esse atributo como não chave.
355
Banco de Dados

Regras de Normalização
Terceira Forma Normal – 3FN
Para estar na terceira forma normal
a tabela não pode ter atributos
não-chave se referindo a outros
atributos não-chave.

Assim devemos verificar se existe


um atributo que não depende
diretamente da chave, retirá-lo
criando uma relação que conterá
esse grupo de atributos, e defina
com a chave, os atributos dos quais
esse grupo depende diretamente.
356
Banco de Dados

Regras de Normalização

357
Banco de Dados

Regras de Normalização
ATIVIDADE
1. O que é normalização?
2. Para que é usada a técnica de normalização?
3. Há alguma vantagem para um banco de dados normalizado?
4. Quais as características do banco de dados normalizado?
5. O que é a 1ª forma normal?
6. O que é a 2ª forma normal?
7. O que é a 3ª forma normal?
8. Quando termina o processo de normalização?
9. Qual ação deve ser tomada quando há relações dentro de
relações?
10. O que fazer quando há dependência transitiva de um
atributo não chave na chave primária?
358
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

TEMA 04
Introdução à Linguagem SQL
Imagem: https://pixabay.com/pt/illustrations/bolsa-de-valores-economia-mundial-913956/
Banco de Dados

Introdução à Linguagem SQL


A "Linguagem Estruturada de Consultas",
conhecida como SQL, é utilizada para
interação com o SGBD e executar várias
tarefas como criar bancos de dados,
tabelas, campos e valores, assim como
inserir e alterar registros, criar objetos
no banco de dados, gerenciar usuário,
consultar informações, controlar
operações.

Todas as transações efetuadas no banco


de dados podem ser requisitadas ao
SGBD utilizando a linguagem SQL.
360
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Introdução à Linguagem SQL

A programação SQL pode ser • inserir (‘insert’),


usada para analisar ou executar
tarefas em tabelas, principalmente • pesquisar (‘search’),
através dos seguintes comandos: • atualizar (‘update’) e
• excluir (‘delete’).

O SQL pode, ainda, fazer consultas e análises mais


avançadas, como escrever queries (comandos de consulta)
com múltiplas informações.
361
Banco de Dados

Introdução à Linguagem SQL


Tipos de dados básicos

Em banco de dados relacionais, cada


tabela pode conter diversas colunas, as
quais armazenarão os dados. Para cada
coluna, existirá um tipo de dado
associado.

Os tipos de dados são definidos durante


a criação da tabela. Os principais tipos
de dados simples definidos:

362
Banco de Dados

Introdução à Linguagem SQL


O comando create database

CREATE DATABASE name


[ [ WITH ] [ OWNER [=] user_name ]
Para criar um banco de dados, você [ TEMPLATE [=] template ]
deve ser um superusuário ou ter o [ ENCODING [=] encoding ]
privilégio especial CREATEDB. [ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace ]
[ CONNECTION LIMIT [=] connlimit ] ]Parâmetros

363
Banco de Dados CREATE DATABASE name
[ [ WITH ] [ OWNER [=] user_name ]
Introdução à Linguagem SQL [ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LC_COLLATE [=] lc_collate ]
name: [ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace ]
O nome de um banco de dados para criar. [ CONNECTION LIMIT [=] connlimit ] ]Parâmetros

user_name:
O nome da função do usuário que
possuirá o novo banco de dados, ou template:
DEFAULT para usar o padrão (ou seja, o O nome do template a partir do qual criar
usuário que está executando o comando). o novo banco de dados, ou DEFAULT para
Para criar um banco de dados de usar o template padrão (template1).
propriedade de outra função, você deve
ser um membro direto ou indireto dessa
função ou ser um superusuário.

364
Banco de Dados CREATE DATABASE name
[ [ WITH ] [ OWNER [=] user_name ]
Introdução à Linguagem SQL [ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
encoding: [ TABLESPACE [=] tablespace ]
Codificação do conjunto de caracteres [ CONNECTION LIMIT [=] connlimit ] ]Parâmetros
para usar no novo banco de dados.
Especifique uma constante de cadeia
(por exemplo, 'SQL_ASCII'), ou um lc_collate:
número de codificação de inteiro, ou Ordem de agrupamento (LC_COLLATE) para usar
DEFAULT para usar a codificação no novo banco de dados. Isso afeta a ordem de
padrão (ou seja, a codificação do classificação aplicada às strings, por exemplo,
banco de dados de modelo). em consultas com ORDER BY, bem como a
ordem usada em índices em colunas de texto. O
padrão é usar a ordem de agrupamento do
banco de dados de modelos.
365
Banco de Dados CREATE DATABASE name
[ [ WITH ] [ OWNER [=] user_name ]
Introdução à Linguagem SQL [ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
lc_ctype: [ LC_COLLATE [=] lc_collate ]
Classificação de caracteres (LC_CTYPE) para [ LC_CTYPE [=] lc_ctype ]
usar no novo banco de dados. Isso afeta a [ TABLESPACE [=] tablespace ]
categorização de caracteres, por ex. inferior, [ CONNECTION LIMIT [=] connlimit ] ]Parâmetros
superior e dígito. O padrão é usar a
classificação de caracteres do banco de dados
de modelos.

tablespace: connlimit:
O nome do espaço de tabela que será Quantas conexões simultâneas podem ser
associado ao novo banco de dados, ou feitas neste banco de dados. -1 (o padrão)
DEFAULT para usar o espaço de tabela do significa sem limite.
banco de dados de modelo. Esse espaço de
tabela será o espaço de tabela padrão usado
para objetos criados neste banco de dados.
366
Banco de Dados

Introdução à Linguagem SQL


O comando create table
Após a criação da base de dados, é O comando CREATE TABLE define
necessário criar as tabelas. uma nova tabela, inicialmente
vazia (sem nenhum registro), no
Para isso, o comando create table é esquema de banco de dados
utilizado e permite criar e definir a atual.
estrutura de uma tabela.
A tabela criada pertence ao
Nele pode-se também, definir as colunas usuário que executa o comando
(campos), suas respectivas restrições, (usuário logado).
além de suas chaves primárias e
estrangeiras.

367
Banco de Dados

Introdução à Linguagem SQL


O comando create table
Sintaxe básica
Se não for usada a opção
COLLATE, a colação padrão CREATE TABLE [IF NOT EXISTS] nome_tabela (
será utilizada. nome_coluna tipo_dados [COLLATE colação] constraint,
Os itens entre colchetes [ ] nome_coluna tipo_dados constraint,
são opcionais na criação de
nome_coluna tipo_dados constraint,
uma tabela.
A cláusula IF NOT EXISTS
...,
verifica se a tabela com o [FOREIGN KEY chave_estrangeira REFERENCES coluna]
nome especificado já existe [ON DELETE ação] [ON UPDATE ação]
antes de tentar criá-la. )

368
Banco de Dados

Introdução à Linguagem SQL


O comando create table
Sintaxe básica
As constraints (testes)
possíveis para colunas são: CREATE TABLE [IF NOT EXISTS] nome_tabela (
nome_coluna tipo_dados [COLLATE colação] constraint,
• NOT NULL nome_coluna tipo_dados constraint,
• NULL (padrão) nome_coluna tipo_dados constraint,
• CHECK ...,
• DEFAULT [FOREIGN KEY chave_estrangeira REFERENCES coluna]
• UNIQUE
[ON DELETE ação] [ON UPDATE ação]
• PRIMARY KEY
• REFERENCES
)

369
Banco de Dados

Introdução à Linguagem SQL


O comando create table
Sintaxe básica
E as constraints específicas
CREATE TABLE [IF NOT EXISTS] nome_tabela (
para tabelas são:
nome_coluna tipo_dados [COLLATE colação] constraint,
• CHECK nome_coluna tipo_dados constraint,
• UNIQUE nome_coluna tipo_dados constraint,
• PRIMARY KEY ...,
• EXCLUDE (extensão [FOREIGN KEY chave_estrangeira REFERENCES coluna]
específica do MySQL) [ON DELETE ação] [ON UPDATE ação]
• FOREIGN KEY )

370
Banco de Dados

Introdução à Linguagem SQL


1º exemplo de criação de tabelas no MySQL:

Vamos criar uma tabela de


nome tabela_autores, que CREATE TABLE tabela_autores (
irá conter os campos: codigo_Autor int(4) UNIQUE AUTO_INCREMENT,
nome_Autor varchar(30) NOT NULL,
COD_Autor, sobrenome_Autor varchar(50),
Nome_Autor, data_Nasc date,
Sobrenome_Autor e PRIMARY KEY (codigo_Autor)
Data_Nasc. );

371
Banco de Dados

Introdução à Linguagem SQL


2º exemplo de criação de tabelas no MySQL:

Agora iremos criar a tabela CREATE TABLE tabela_editoras(


de editoras, com os campos: cod_Editora int,
Nome_Editora varchar(35) UNIQUE NOT NULL,
COD_Editora e PRIMARY KEY (cod_Editora)
Nome_Editora.
);

372
Banco de Dados

Introdução à Linguagem SQL


3º exemplo de criação de tabelas no MySQL:

Vamos criar também uma CREATE TABLE tabela_generos (


tabela para armazenar os COD_Genero integer,
gêneros literários: Nome_Genero varchar(40) UNIQUE NOT NULL,
PRIMARY KEY (COD_Genero)
);

373
Banco de Dados CREATE TABLE tabela_livros (
Introdução à COD_Livro int UNIQUE NOT NULL,
Nome_Livro varchar(50) NOT NULL,
Linguagem SQL Autor int NOT NULL,
Editora int NOT NULL,
Data_Pub date,
4º exemplo de criação de Genero int NOT NULL,
tabelas no MySQL: Preco_Livro float,
FOREIGN KEY (Autor) REFERENCES tabela_autores
(codigo_Autor) ON DELETE
Finalmente, vamos criar a CASCADE,
tabela de livros, incluindo os PRIMARY KEY (COD_Livro)
relacionamentos com as );
demais tabelas por meio do
uso de chaves estrangeiras:

374
Banco de Dados

Introdução à
Linguagem SQL

Após criar as tabelas


podemos descrevê-las
individualmente com o
comando \d, como segue:
\d tabela_livros
\d tabela_autores
\d nome_tabela
\d tabela_editoras
\d tabela_generos

375
Banco de Dados

Introdução à CREATE TABLE UNIQUE


Linguagem SQL CREATE TABLE Pessoa ( ID int NOT NULL,
Sobrenome varchar(255) NOT NULL, Nome
varchar(255),
Age int, UNIQUE (ID)
Outro exemplo de );
Create Table:
CREATE TABLE PRIMARY KEY
CREATE TABLE Pessoa (
ID int NOT NULL,
Sobrenome varchar(255) NOT NULL, Nome
varchar(255),
Age int,
PRIMARY KEY (ID)
);
376
Banco de Dados
CREATE TABLE FOREIGN KEY
Introdução à CREATE TABLE Pedidos (
PedidoID int NOT NULL, PedidoNumr int NOT
Linguagem SQL NULL, PessoaID int,
PRIMARY KEY (PedidoID),
FOREIGN KEY (PessoaID) REFERENCES
Outro exemplo de Pessoa(PessoaID)
);
Create Table:
CREATE TABLE DEFAULT
CREATE TABLE Pessoa ( ID int NOT NULL,
Sobrenome varchar(255) NOT NULL, Nome
varchar(255),
Idade int,
Cidade varchar(255) DEFAULT 'Sandnes'
);
377
Banco de Dados

Introdução à
Linguagem SQL

Outro exemplo de CREATE TABLE check


CREATE TABLE Pessoa ( ID int NOT NULL,
Create Table:
Sobrenome varchar(255) NOT NULL, Nome varchar(255),
Idade int,
CHECK (Idade>=18)
);

378
Banco de Dados

Introdução à
Linguagem SQL Sintaxe básica

Inserindo dados nas INSERT INTO nome_tabela


tabelas criadas no VALUES (valores);
MySQL:
ou
O comando INSERT permite
incluir novos dados dentro INSERT INTO nome_tabela (campos)
de uma tabela.
VALUES (valores);

379
Banco de Dados

Introdução à Linguagem SQL


Exemplo:

INSERT INTO tabela_autores VALUES (001, 'Carlos, 'Drumond de


Andrade', '1902-10-31');
ou
INSERT INTO tabela_autores (COD_Autor, Nome_Autor,
Sobrenome_Autor, Data_Nasc) VALUES (001,
'Carlos, 'Drumond de Andrade', '1902-10-31');

380
Banco de Dados

Introdução à Linguagem SQL


ATIVIDADE
1. O que significa SQL?
2. O que é a Linguagem SQL?
3. Qual o comando de criação de banco de dados?
4. O que é Template na criação de um banco de dados?
5. O que faz a instrução tablespace?
6. Qual o comando de criação das tabels?
7. É possível especificar um esquema diferente do
esquema atual para a criação?
8. A sintaxe para a criação de uma tabela é?
9. O que é uma constraint de coluna?
10. O que faz a clausula check?

381
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Introdução à Linguagem SQL


MODELAGEM EM DML

As discussões anteriores sobre o


modelo relacional contemplaram
apenas os aspectos estruturais.
Essas operações são usadas para
Agora, a atenção será voltada para a selecionar tuplas de uma determinada
álgebra relacional, que é uma coleção relação ou para combinar tuplas
de operações utilizadas para manipular relacionadas a diversas relações com o
relações. propósito de especificar uma consulta,
uma requisição de recuperação sobre a
base de dados.
382
Banco de Dados

Introdução à Linguagem SQL


MODELAGEM EM DML

A linguagem de manipulação de dados


(Data Manipulation Language, DML) é
a linguagem que permite aos usuários
fazer o acesso a os dados ou
manipulá-los, conforme modelo de
dados apropriado.

383
Imagem: https://pixabay.com/pt/vectors/big-data-servidor-prateleira-6100853/
Banco de Dados

Introdução à Linguagem SQL


MODELAGEM EM DML

O comando SELECT
permite Sintaxe básica
recuperar os dados de um objeto
do banco de dados, como uma
tabela, view e, em alguns casos,
uma stored procedure (alguns
bancos de dados permitem a
criação de procedimentos que
retornam valor).

384
Imagem: https://pixabay.com/pt/vectors/big-data-servidor-prateleira-6100853/
Banco de Dados

Introdução à Linguagem SQL


MODELAGEM EM DML
Isto é feito com a utilização da
cláusula WHERE para adicionar
É possível selecionar o conteúdo de restrições condicionais ao comando
uma tabela parcial colocando SELECT.
restrições para as linhas a serem
incluídas no resultado. A sintaxe a seguir permite especificar
quais linhas serão selecionadas:

385
Imagem: https://pixabay.com/pt/vectors/big-data-servidor-prateleira-6100853/
Banco de Dados

Introdução à Linguagem SQL


MODELAGEM EM DML
O comando SELECT recupera todas as
linhas que atendam às condições
especificadas – também conhecidas
como critérios condicionais – na
cláusula where.

A lista de condições em where é uma


representação por uma ou mais
expressões condicionais, separadas
por operadores lógicos.

386
Imagem: https://pixabay.com/pt/vectors/big-data-dados-base-de-dados-7216839/
Banco de Dados

Introdução à Linguagem SQL


OPERADORES SQL
OPERADOR SIGNIFICADO
Os operadores aritméticos + (Somar) Adição
desempenham operações - (Subtrair) Subtração
matemáticas em duas
* (Multiplicar) Multiplicação
expressões de um ou mais
/ (dividir) Divisão
dos tipos de dados da
% (módulo) Retorna o resto inteiro de uma divisão. Por exemplo,
categoria de tipo de dados
12% 5 = 2 porque o resto de 12 dividido por 5 é 2.
numéricos.
= (Operador de atribuição) O sinal de igual (=) é o único operador de atribuição
Transact-SQL.

387
Banco de Dados

Introdução à Linguagem SQL


OPERADORES SQL

O operador de atribuição
também pode ser usado
para estabelecer a relação
entre um título de coluna SELECT FirstColumnHeading = ‘xyz',
e a expressão que define SecondColumnHeading = ProductID
os valores para a coluna.
FROM Production.Product;

388
Banco de Dados

Introdução à Linguagem SQL


OPERADORES
OPERADOR SIGNIFICADO
COMPOSTOS ALL TRUE se tudo em um conjunto de comparações for TRUE.
AND TRUE se as duas expressões boolianas forem TRUE.

Os operadores ANY TRUE se qualquer conjunto de comparações for TRUE.


compostos executam BETWEEN TRUE se o operando estiver dentro de um intervalo.
alguma operação e EXISTS TRUE se uma subconsulta tiver qualquer linha.
definem um valor IN TRUE se o operando for igual a um de uma linha de expressões.
original para o LIKE TRUE se o operando corresponder a um padrão.
resultado da operação. NOT Inverte o valor de qualquer outro operador booliano.
OR TRUE se qualquer expressão booliana for TRUE.
SOME TRUE se algum conjunto de comparações for TRUE.

389
Banco de Dados

Introdução à Linguagem SQL


OPERADORES LÓGICOS

O comando UPDATE é responsável por


alterar um ou mais registros de uma
tabela, dependendo de suas
condições e é claro respeitando as
restrições da tabela, sintaxe:

390
Banco de Dados

Introdução à Linguagem SQL


OPERADORES LÓGICOS Excluindo dados de uma tabela O
comando delete é utilizado para excluir
O comando DELETE nos permite linhas de uma tabela. No exemplo
remover um ou mais registros de vamos apagar os pedidos que tenham
uma tabela, sintaxe: seu número acima de 1000.
EXEMPLO:

DELETE FROM Pedidos


WHERE PedidoNumr>=1000

391
Banco de Dados

Introdução à Linguagem SQL


ATIVIDADE
1. Qual o significado de DML?
2. Quais são os comandos DML?
3. O que é um operador de atribuição?
4. Quais são as cláusulas obrigatórias no comando select?
5. Para que servem os operadores compostos?
6. O que faz o comando Update?
7. Dê um exemplo.
8. O que faz o comando INSERT?
9. Apresente um exemplo de como é possível usar um
operador numa busca.
10. O que faz o comando DELETE?

392
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Introdução à Linguagem SQL


CONDIÇÕES DE FILTRAGEM
EM BUSCAS SQL

A cláusula WHERE permite aplicar uma


condição para que seja realizado o A condição é construída
comando SQL. através de uma comparação
O objetivo dele é fazer a filtragem dos
entre dois valores, utilizando
dados determinados pelos comandos os operadores relacionais.
SELECT, UPDATE e DELETE.

393
Banco de Dados

Introdução à Linguagem SQL


OPERADORES RELACIONAIS
SÍMBOLO OPERAÇÃO
= Igualdade
Para aplicar a condição (ou filtro) podem ser
utilizados os operadores de comparação: > Maior
=, >, <, >=, <= e <> (diferente). < Menor
A tabela mostra os operadores de >= Maior ou Igual
comparação que são usados:
<= Menor ou Igual
<> Diferente

394
Banco de Dados

Introdução à Linguagem SQL


GROUP BY

Os dados resultantes de
uma seleção podem ser
agrupados de acordo com Exemplo
um critério específico.
SELECT COUNT(PedidoNumr) FROM
Este procedimento é Pedidos GROUP BY PedidoNumr
realizado usando a cláusula
group by.

395
Banco de Dados

Introdução à Linguagem SQL


JUNÇÕES (JOIN)

Quando precisamos realizar consultas


que envolvam mais de uma tabela,
uma das soluções seria a utilização de
junções.

As junções permitem que acessemos


mais de uma tabela utilizando apenas
um SELECT.

396
Imagem: https://pixabay.com/pt/vectors/big-data-dados-base-de-dados-7216774/
Banco de Dados

Introdução à Linguagem SQL


JUNÇÃO INTERNA
(INNER JOIN)

A junção interna entre tabelas é a SELECT * FROM tabela_Livros


modalidade de junção que faz INNER JOIN tabela_autores
com que somente participem da
relação resultante as linhas das ON tabela_Livros.ID_Autor =
tabelas de origem que atenderem tabela_autores.ID_Autor;
à cláusula de junção.

397
Banco de Dados

Introdução à Linguagem SQL


JUNÇÕES EXTERNAS
(OUTER JOIN)

Na junção externa, os registros SELECT coluna


que participam do resultado da
junção não obedecem FROM tabela_esq
obrigatoriamente à condição RIGHT (OUTER) JOIN tabela_dir
de junção, ou seja, a não
inexistência de valores ON tabela_esq.coluna=tabela_dir.coluna
correspondentes não limita a WHERE tabela_esq.coluna IS NULL;
participação de linhas no
resultado de uma consulta.

398
Banco de Dados

Introdução à Linguagem SQL

Exemplo:

SELECT * FROM tabela_Livros


RIGHT JOIN tabela_editoras
ON tabela_Livros.ID_editora =
tabela_editoras.ID_editora
WHERE tabela_Livro.ID_editora IS NULL;
399
Imagem: https://pixabay.com/pt/vectors/big-data-dados-base-de-dados-7216774/
Banco de Dados

Introdução à Linguagem SQL


COMANDO: SELECT...INTO
Esse comando é usado para
armazenar o resultado de uma
consulta em uma variável.
SELECT Nome, Sobrenome INTO
O resultado da consulta deve ter Relacao_Autores
sempre como retorno somente
uma linha, caso o resultado tenha
FROM tabela_Autores
mais de uma linha, deve ter o where ID = ID_Autor
mesmo número de variáveis para
receber esses valores.

400
Banco de Dados

Introdução à Linguagem SQL


ATIVIDADE
1. Crie dois comandos utilizando a cláusula between.
2. Qual o significado da cláusula where?
3. Crie dois comandos utilizando a cláusula where.
4. Crie um comando delete usando a cláusula where.
5. Crie um comando usando a cláusula set.
6. Apresente um exemplo usando group by.
7. Apresente um exemplo usando inner join.
8. Apresente um exemplo usando Select into.
9. Como armazenar o conteúdo de uma busca em uma variável?
10. Como se pode fazer consultas em mais de uma tabela?

401
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

TEMA 05
Modelagem DDL
Imagem: https://pixabay.com/pt/illustrations/bolsa-de-valores-economia-mundial-913956/
Banco de Dados

Modelagem DDL

Em tese, uma linguagem de banco


de dados permite a criação de
banco de dados e estruturas de
tabelas para executar tarefas
básicas de gerenciamento de
dados (adicionar, excluir e
modificar) e consultas complexas,
transformando dados brutos em
informações úteis.

403
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Modelagem DDL
COMANDOS DE
DEFINIÇÃO DE DADOS

Os comandos de definição de
dados SQL devem ser portáveis, ou
seja, adequar-se há um padrão
básico para que os usuários não
tenham de reaprender o básico
quando passarem de um SGBDR
para outro.

404
Imagem: https://pixabay.com/pt/illustrations/dados-em-forma%c3%a7%c3%a3o-an%c3%a1lise-big-data-3329993/
Banco de Dados

Modelagem DDL
COMANDOS DE
DEFINIÇÃO DE DADOS
CATEGORIAS

Linguagem de definição
de dados (DDL): A SQL inclui
comandos para criar objetos de
banco de dados como tabelas,
índices e views. Bem como
comandos para definir direitos
de acesso a esses objetos.
405
Banco de Dados nome-tabela representa o nome da tabela que será
Modelagem DDL atualizada.
nome-coluna representa o nome da coluna que será
COMANDOS DE criada.
DEFINIÇÃO DE DADOS tipo-do-dado a cláusula que define o tipo e tamanho dos
campos definidos para a tabela.
CATEGORIAS
DROP nome-coluna realiza a retirada da coluna
especificada na estrutura da tabela.
O comando alter table ADD nome-coluna tipo-do-dado realiza a inclusão
permite alterar a estrutura de da coluna especificada na estrutura da tabela. Na coluna
uma tabela acrescentando, correspondente a este campo nos registros já existentes será
alterando, retirando e preenchido o valor NULL (Nulo). As definições NOT NULL e
alterando nomes, formatos NOT NULL WITH DEFAULT são semelhantes à do comando
das colunas e a integridade CREATE TABLE.
referencial definidas em uma MODIFY nome-coluna tipo-do-dado permite a
determinada tabela. alteração na característica da coluna especificada.
406
Banco de Dados

Modelagem DDL
APAGANDO UMA
COLUNA DE UMA TABELA

Imagine que você deseja, por EXEMPLO


alguma razão, apagar a
coluna que armazena o nome ALTER TABLE tabela_generos
Nome_Genero dos livros da DROP Nome_Genero;
tabela tabela_generos.

407
Banco de Dados
CREATE TABLE Pedidos (
Modelagem DDL PedidoID int NOT NULL, PedidoNumr int
NOT NULL, PessoaID int,
MODIFICANDO UMA PRIMARY KEY (PedidoID),
COLUNA DE UMA TABELA FOREIGN KEY (PessoaID) REFERENCES
Pessoa(PessoaID)
Se precisássemos mudar as
);
características de uma coluna
da tabela após a sua criação, Exemplo
usaríamos o comando modify. ALTER TABLE Pedidos
Como exemplo, imagine que MODIFY PedidoNumr INTEGER NULL;
desejamos aceitar valores
nulos no atributo PedidoNumr
da tabela Pedidos.
408
Banco de Dados

Modelagem DDL
O COMANDO
DROP TABLE

O comando drop table


serve para destruirmos
uma tabela. Se, por
exemplo, precisássemos
destruir a tabela Pedidos.

409
Banco de Dados

Modelagem DDL
ATIVIDADE
1. Qual o comando utilizado para alterar uma
coluna em uma tabela?
2. Qual o comando utilizado para criar um
esquema de banco de dados?
3. Quais são os comandos disponíveis em DDL?
4. Qual o comando utilizado para remover uma
tabela de um banco de dados?
5. Qual o comando utilizado para criação de uma
tabela em um esquema específico de banco de
dados?

410
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Modelagem DDL
ATIVIDADE
6. Qual o comando utilizado para modificar uma
coluna de uma tabela?
7. E para alterar um tipo de dados de uma coluna?
8. Qual o comando utilizado para validar as
remoções em um banco de dados?
9. Para que serve o comando Drop table?
10. Apresente um exemplo de Drop Table.

411
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Modelagem DDL
RECURSOS AVANÇADOS DE DDL

Antes de podermos utilizar um novo


SGBDR, é necessário realizar duas
tarefas: primeiro, criar a estrutura
do banco de dados e segundo, criar
as tabelas que manterão os dados
do usuário final.

Para realizar a primeira tarefa o


SGBDR cria os arquivos físicos que
conterão o banco de dados.

412
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Modelagem DDL
RECURSOS AVANÇADOS DE DDL
Para ser autenticado, deve-se
fazer login no SGBDR utilizando
Quando se utiliza um SGBDR um ID de usuário e uma senha
empresarial, antes de começar a criada pelo administrador de
criar tabelas é necessário ser
banco de dados.
autenticado por esse sistema.

A autenticação é o processo por Em um SGBDR empresarial todo


meio do qual um SGBD garante que ID de usuário está associado a um
somente usuários registrados
possam acessar o banco de dados.
esquema de banco de dados.

413
Banco de Dados

Modelagem DDL
ESQUEMA DE BANCO DE DADOS

Quando se utiliza um SGBDR


empresarial, antes de começar a
criar tabelas é necessário ser
autenticado por esse sistema.

A autenticação é o processo por


meio do qual um SGBD garante que
somente usuários registrados
possam acessar o banco de dados.

414
Imagem: https://pixabay.com/pt/illustrations/pol%c3%adtica-de-privacidade-6562483/
Banco de Dados

Modelagem DDL
ESQUEMA DE BANCO DE DADOS Um único banco de dados pode
manter vários esquemas que
pertençam a vários usuários ou
No ambiente de SQL esquema é um aplicações.
grupo de objetos de banco de dados
como tabelas e índices relacionados Eles são úteis, pois agrupam as
entre si. tabelas por proprietários (ou
função) e aplicam o primeiro
Geralmente o esquema pertence a nível de segurança permitindo
um único usuário ou aplicação. que cada usuário veja apenas as
tabelas que lhe pertencem.

415
Banco de Dados

Modelagem DDL
ESQUEMA DE BANCO DE DADOS

Os padrões de SQL ANSI definem


um comando para a criação de um
esquema de banco de dados:

CREATE SCHEMA AUTHORIZATION {CRIADOR}

416
Imagem: https://pixabay.com/pt/vectors/isom%c3%a9trico-edif%c3%adcios-smartphone-5244846/
Banco de Dados

Modelagem DDL
ESQUEMA DE BANCO DE DADOS
ESPECIFICAÇÕES

Quando for indispensável haver


dados disponíveis, a especificação
NOT NULL não permitirá que o
usuário deixe o atributo vazio (sem
nenhuma entrada de dados).

417
Imagem: https://pixabay.com/pt/vectors/big-data-dados-base-de-dados-7216839/
Banco de Dados

Modelagem DDL
ESQUEMA DE BANCO DE DADOS Embora a restrição UNIQUE e a restrição
PRIMARY KEY impõem exclusividade,
UNIQUE use a restrição UNIQUE em vez da
restrição PRIMARY KEY quando for impor
Restrições são regras que o a exclusividade de uma coluna, ou uma
Mecanismo de Banco de Dados do combinação de colunas, que não seja
SQL Server impõe a você. uma chave primária.
Por exemplo, você pode usar as
restrições UNIQUE para garantir que
não há valores duplicados inseridos
em colunas específicas que não
participam de uma chave primária.

418
Imagem: https://pixabay.com/pt/vectors/lat%c3%a3o-gradiente-chave-1293947/
Banco de Dados

Modelagem DDL
ESQUEMA DE BANCO DE DADOS Outras permissões dos usuários
PERMISSÕES DOS USUÁRIOS ALL PRIVILEGES - como vimos anteriormente, isso
garante ao usuário do MySQL acesso completo a um
Quando um usuário é criado, não possui banco de dados (ou, se nenhum banco de dados for
selecionado, acesso global a todo o sistema)
permissões para fazer nada com os bancos
de dados. CREATE - permite criar tabelas ou bancos de dados
DROP - permite deletar tabelas ou bancos de dados
Na verdade, mesmo se tentar fazer login DELETE - permite excluir linhas de tabelas
(com a senha password), ele não será INSERT - permite inserir linhas em tabelas
capaz de chegar ao shell do MySQL.
SELECT - permite usar o comando SELECT para ler os
bancos de dados
Portanto, a primeira coisa a ser feita é
UPDATE - permite atualizar linhas de tabelas
fornecer ao usuário o acesso às
informações que eles irão precisar. GRANT OPTION - permite conceder ou remover
privilégios de outros usuários
Banco de Dados

Modelagem DDL
ATIVIDADE
1. O que é necessário antes de criar uma tabela em um banco de dados?
2. Complete a syntax CREATE SCHEMA AUTHORIZATION
3. Quais são os direitos do usuário root no schema root?
4. Quais as permissões um usuário tem ao ser criado?
5. O ID de usuário está associado a que objeto de banco de dados?
6. Como funciona a especificação NOT NULL?
7. Como funciona a especificação UNIQUE?
8. Qual uma alternativa para a especificação UNIQUE?

420
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Modelagem DDL
OUTROS RECURSOS
FUNÇÕES AGREGADAS

Muitas vezes, precisamos de


informações que é resultado de
alguma operação aritmética ou de
conjunto sobre os dados contidos nas
tabelas de um banco de dados. Para
isso, utilizamos as funções agregadas.

421
Imagem: https://pixabay.com/pt/vectors/abstract-arte-fronteira-contando-1817584/
Banco de Dados

Modelagem DDL
OUTROS RECURSOS
FUNÇÕES AGREGADAS
Função count( )
A função count, como o próprio nome
sugere, conta a quantidade de linhas
de uma tabela que satisfazem uma
determinada condição. Para contar o
número de pedidos que existe na
tabela pedidos, pode-se usar o count.

Exemplo
SELECT COUNT(PedidoNumr) FROM Pedidos
422
Imagem: https://pixabay.com/pt/vectors/pacote-entrega-caixa-cart%c3%a3o-envio-575402/
Banco de Dados

Modelagem DDL
OUTROS RECURSOS
FUNÇÕES AGREGADAS
Função avg( )
A função avg é responsável por extrair a
média aritmética dos valores de uma coluna.

Para calcular a média de pedidos da tabela


pedidos, pode-se usar o avg.

Exemplo
SELECT AVG(PedidoNumr) FROM Pedidos
423
Imagem: https://pixabay.com/pt/vectors/pacote-entrega-caixa-cart%c3%a3o-envio-575402/
Banco de Dados

Modelagem DDL
OUTROS RECURSOS
FUNÇÕES AGREGADAS
Função sum( )
A função sum é responsável por realizar a
soma dos valores de uma coluna.

Para somar o total de pedidos abaixo de 1000


da tabela pedidos, pode-se usar o sum

Exemplo
SELECT SUM(PedidoNumr) FROM Pedidos WHERE PedidoNumr<1000
424
Imagem: https://pixabay.com/pt/vectors/pacote-entrega-caixa-cart%c3%a3o-envio-575402/
Banco de Dados

Modelagem DDL

425
Imagem: https://pixabay.com/pt/vectors/abstract-arte-fronteira-contando-1817584/
Banco de Dados

Modelagem DDL
OUTROS RECURSOS
CRIAÇÃO DE ÍNDICE Neste exemplo é criada uma tabela
chamada CLIENTES com dois campos:
Codigo, do tipo inteiro e Nome do tipo texto.
No banco de dados MySQL os índices
podem ser criados com considerável
facilidade, tanto no momento da CREATE TABLE CLIENTES(
concepção da tabela quanto em uma Codigo INT,
tabela já existente. Nome VARCHAR(50),
INDEX (Codigo)
);
CREATE INDEX
CREATE UNIQUE INDEX index_name ON table_name (column1, column2, ...);
426
Banco de Dados

Modelagem DDL
OUTROS RECURSOS
CRIAÇÃO DE ÍNDICE Isso pode ser feito com uma instrução DDL
(Data Definition Language). Inicialmente
criamos a tabela sem índice algum, em
O índice é criado com o uso da palavra seguida adicionamos o índice à coluna
reservada INDEX, seguida do nome da(s)
“Codigo”.
coluna(s) a ser(em) indexada(s).

Porém, nem sempre sabemos onde vamos CREATE TABLE CLIENTES(


precisar de um índice e muitas vezes é Codigo INT,
preciso criá-los quando a tabela já existe e Nome VARCHAR(50)
inclusive quando já possui registros. );

427
Banco de Dados

Modelagem DDL
OUTROS RECURSOS
CRIAÇÃO DE ÍNDICE

Criando o índice separadamente:

CREATE INDEX idx_CLIENTES_CODIGO ON CLIENTES(Codigo);

Nesse caso precisamos definir um nome para o índice (por


questão de padronização, alguns profissionais optam por iniciar
o nome do índice com um prefixo que indique que ele é um
índice, como “id” ou “idx” de “index”, em inglês). Após o nome
do índice adicionamos a palavra reservada “ON” que indica em
que tabela e coluna o índice será criado, dados que vêm logo
em seguida, como vemos na listagem.
428
Banco de Dados

Modelagem DDL
OUTROS RECURSOS
VIEW CRIANDO UMA VIEW
Create view
Uma View é um objeto que pertence a um CREATE VIEW view_name AS SELECT
banco de dados, definida baseada em column1, column2, ...
declarações SELECT´s, retornando uma FROM table_name
determinada visualização de dados de uma WHERE condition;
ou mais tabelas.
ou
CREATE VIEW nome_da_view AS SELECT *
Esses objetos são chamados por vezes de
“virtual tables“, formada a partir de outras FROM nome_tabela;
tabelas que por sua vez são chamadas de
“based tables” ou ainda outras Views. VERIFICAR SE A VIEW FOI CRIADA
SHOW TABLES;
Banco de Dados

Modelagem DDL
OUTROS RECURSOS
VIEW ALTERANDO UMA VIEW

Caso exista uma nova tabela chamada ALTER VIEW nome_da_view AS SELECT *
“nome_da_view” foi o nome que FROM nome_outra_tabela;
definimos para essa nova view; A
criação da view foi executada com
sucesso.
EXCLUINDO UMA VIEW
E alguns casos, as Views são atualizáveis
e podem ser alvos de declaração DROP VIEW nome_da_view;
INSERT, UPDATE e DELETE, que na
verdade modificam sua “based tables“.
430
Banco de Dados

Modelagem DDL
ATIVIDADE
1. O que são Funções agregadas?
2. Qual o papel da função count( )?
3. O que faz a função avg( )?
4. Qual o papel da função sum( )
5. O que é um index?
6. O que é uma view?
7. Como criar uma view?
8. E como é possível verificar se a View foi criada?
9. Qual o comando para remover uma visualização?
10. Como alterar uma view?

431
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Modelagem DDL
COMANDOS DCL

A Linguagem de consulta (SQL)


estruturada como todos sabemos é
a linguagem de banco de dados pelo
uso de que podemos realizar
determinadas operações no banco
de dados existente e podemos usar
essa linguagem para criar um banco
de dados.

432
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Modelagem DDL
COMANDOS DCL

O SQL usa certos comandos como


Create, Drop, Insert etc. para
realizar as tarefas necessárias.

A Linguagem de Controle de Dados,


ou do inglês Data Control Language
(DCL), é uma linguagem de
computador e um subconjunto de
SQL, usada para controlar o acesso
aos dados em um banco de dados.

433
Imagem: https://pixabay.com/pt/vectors/big-data-dados-base-de-dados-7216839/
Banco de Dados

Modelagem DDL
Se ele não estiver nesse estado, a
COMANDOS DCL
transação resultará em um banco de
Banco de Dados Consistente
dados inconsistente e violará suas
Um banco de dados regras de integridade e de negócios.
consistente é aquele em que
são satisfeitas as restrições de Por esse motivo todas as transações
integridade de banco de dados.
são controladas e executadas pelo
Para assegurar a consistência SGBD para garantir a integridade do
do banco de dados, toda banco de dados.
transação deve começar com o
banco de dados em estado
considerado consistente.
434
Banco de Dados

Modelagem DDL
O MySQL Data Control Language é
COMANDOS DCL
semelhante ao SQL Data Control
Banco de Dados Consistente
Language e estes são classificados
Para executar operações DML em dois tipos:
em uma tabela, as permissões
são necessárias e são
chamadas Privilégios. Data Control
Language
Esses privilégios podem ser
controlados eficientemente
usando as instruções do
MySQL DCL. GRANT REVOKE

435
Banco de Dados

Modelagem DDL
COMANDOS DCL
GRANT
No lado do servidor do procedimento,
ele incorpora a possibilidade de o
Grant é usado para conceder servidor controlar determinados
permissões aos clientes.
benefícios do cliente sobre o banco de
No banco de dados MySQL, ele dados MySQL e reduzir suas
oferece ao servidor e ao cliente permissões de conexão do banco de
uma grande quantidade de dados ou conceder autorizações
privilégios de controle.
limitadas para uma tabela específica.

436
Banco de Dados

Modelagem DDL
A palavra-chave PUBLIC indica que os
GRANT privilégios devem ser concedidos para todos
Concessões em objetos os papéis, inclusive aos que vierem a ser
criados posteriormente.
do banco de dados
PUBLIC pode ser considerado como um
grupo definido implicitamente que sempre
Esta funcionalidade do comando inclui todos os papéis.
GRANT concede privilégios específicos
sobre um objeto do banco de dados Um determinado papel possui a soma dos
para um ou mais papéis. privilégios concedidos diretamente para ele,
mais os privilégios concedidos para todos os
Estes privilégios são adicionados aos já papéis que este seja membro, mais os
existentes, caso haja algum. privilégios concedidos para PUBLIC.

437
Banco de Dados

Modelagem DDL
GRANT
Concessões em objetos
do banco de dados
Se for especificado WITH GRANT OPTION
quem receber o privilégio poderá, por sua
vez, conceder o privilégio a terceiros.

Sem a opção de concessão, quem recebe


não pode conceder o privilégio.

A opção de concessão não pode ser


concedida para PUBLIC.
438
Imagem: https://pixabay.com/pt/photos/internet-tela-sens%c3%advel-ao-toque-3484137/
Banco de Dados

Modelagem DDL
GRANT O padrão contempla:
Concessões em objetos Não permitir o acesso público às tabelas,
do banco de dados esquemas e espaços de tabelas;

Para os bancos de dados conceder o


privilégio CONNECT e o privilégio de
Dependendo do tipo do objeto,
criação de tabela TEMP;
os privilégios padrão iniciais
podem incluir a concessão de
Para as funções conceder o privilégio
alguns privilégios para PUBLIC.
EXECUTE;

Para as linguagens conceder o privilégio


USAGE.
439
Banco de Dados

Modelagem DDL
GRANT
Concessões em objetos
do banco de dados
O dono do objeto poderá, é claro, revogar
estes privilégios (para a máxima segurança
o comando REVOKE deverá ser executado
na mesma transação que criar o objeto;
dessa forma não haverá espaço de tempo
para outro usuário utilizar o objeto).

440
Imagem: https://pixabay.com/pt/photos/internet-tela-sens%c3%advel-ao-toque-3484137/
Banco de Dados

Modelagem DDL
INSERT
GRANT Permite inserir (INSERT) novas linhas na
Concessões em objetos tabela especificada. Também permite
utilizar o comando COPY FROM.
do banco de dados
Tipos de privilégios: UPDATE
Permite modificar (UPDATE) os dados de
SELECT qualquer coluna da tabela especificada.
Permite consultar (SELECT) qualquer Os comandos SELECT... FOR UPDATE e
coluna da tabela, visão ou seqüência SELECT... FOR SHARE também requerem
especificada. Também permite este privilégio (além do privilégio
utilizar o comando COPY TO. Para as SELECT). Para as sequências, este
sequências, este privilégio também privilégio permite o uso das funções
permite o uso da função currval. nextval e setval.
441
Banco de Dados

Modelagem DDL CREATE


Para bancos de dados, permite a criação
GRANT de novos esquemas no banco de dados.
Concessões em objetos Para esquemas, permite a criação de
novos objetos no esquema. Para mudar
do banco de dados o nome de um objeto existente é
Tipos de privilégios: necessário ser o dono do objeto e
possuir este privilégio no esquema que
o contém. Para espaços de tabelas,
DELETE permite a criação de tabelas e índices no
Permite excluir (DELETE) linhas da espaço de tabelas, e permite a criação
tabela especificada. de bancos de dados possuindo este
espaço de tabelas como seu espaço de
TRIGGER tabelas padrão (Deve ser observado que
Permite criar gatilhos na tabela revogar este privilégio não altera a
especificada (Consulte o comando colocação dos objetos existentes).
CREATE TRIGGER) 442
Banco de Dados

Modelagem DDL
GRANT EXECUTE
Concessões em objetos Permite utilizar a função especificada e
qualquer operador implementado
do banco de dados utilizando a função. Este é o único tipo
Tipos de privilégios: de privilégio aplicável às funções (Esta
sintaxe funciona para as funções de
agregação também).
REFERENCES
Para criar uma restrição de chave
estrangeira é necessário possuir este TEMPORARY - TEMP
privilégio, tanto na tabela que faz Permite a criação de tabelas
referência quanto na tabela que é temporárias ao usar o banco de dados.
referenciada.
443
Banco de Dados

Modelagem DDL
GRANT USAGE
Para as linguagens procedurais, permite
Concessões em objetos o uso da linguagem especificada para
do banco de dados criar funções nesta linguagem. Este é o
único tipo de privilégio aplicável às
Tipos de privilégios: linguagens procedurais. Para os
esquemas, permite acessar os objetos
contidos no esquema especificado
CONNECT (assumindo que os privilégios
Permite ao usuário se conectar ao banco requeridos para os próprios objetos
de dados especificado. Este privilégio é estejam atendidos). Essencialmente,
verificado no estabelecimento da concede a quem recebe o direito de
conexão (além de serem verificadas as "procurar" por objetos dentro do
restrições impostas por pg_hba.conf). esquema.
444
Banco de Dados

Modelagem DDL
GRANT
Concessões em objetos
do banco de dados
Tipos de privilégios:

ALL PRIVILEGES
Concede todos os privilégios disponíveis
de uma só vez. A palavra-chave Visualizando o exemplo, o conceito de comando
PRIVILEGES é requerida pelo SQL estrito. GRANT pode ser facilmente entendido.
Os privilégios requeridos por outros
comandos estão listados nas páginas de
referência dos respectivos comandos.
445
Banco de Dados

Modelagem DDL
REVOKE
Deve ser observado que um
determinado papel possui a
O comando REVOKE revoga, de um ou soma dos privilégios concedidos
mais papéis, privilégios concedidos diretamente para o próprio
anteriormente. A palavra-chave PUBLIC papel, mais os privilégios
se refere ao grupo contendo todos os
usuários, definido implicitamente.
concedidos para os papéis dos
quais o papel é membro no
O significado dos tipos de privilégio momento, mais os privilégios
deve ser visto na descrição do concedidos para PUBLIC.
comando GRANT.

446
Banco de Dados

Modelagem DDL
REVOKE
Ao revogar o privilégio de
membro de um papel,
Se o privilégio ou a opção de GRANT OPTION passa a se
concessão que o primeiro usuário chamar ADMIN OPTION,
possui for revogada, e existirem
privilégios dependentes, estes
mas o comportamento é
privilégios dependentes também serão semelhante.
revogados se for especificado
CASCADE, senão a ação de revogar
falhará.

447
Banco de Dados

Modelagem DDL
REVOKE

Deve ser observado, também, que esta forma


do comando não inclui a palavra GROUP.

448
Banco de Dados

Modelagem DDL
CREATE USER host é o nome do host a partir de onde o
usuário pode se conectar ao banco de dados;
geralmente usamos localhost para a máquina
local. Se não for especificado um host, o
MySQL acrescentará automaticamente o
Usada para criar um usuário símbolo % como nome do host, o que
no sistema (sem privilégios). significa que o usuário poderá se conectar de
qualquer lugar. É possível também usar o
endereço IP de um host (por exemplo,
127.0.0.1 para o host local).

Sintaxe:
CREATE USER usuário@host IDENTIFIED BY 'senha';
449
Banco de Dados

Modelagem DDL
Verificando se o usuário foi criado como
especificado:
CREATE USER
SELECT User, Host FROM mysql.user;
Após a criação do usuário, ele não terá
nenhum privilégio em nenhum banco de
dados. Os privilégios podem ser
atribuídos por meio da declaração GRANT,
que estudaremos na próxima lição.

1º EXEMPLO:
Criando um usuário de nome “fabio” com
senha “1234” no MySQL, com acesso a
partir do host local:

CREATE USER fabio@localhost IDENTIFIED BY '1234'; 450


Banco de Dados

Modelagem DDL
CREATE USER
2º EXEMPLO:
Criando um usuário de nome “ana” com
acesso a partir de qualquer local:

CREATE USER ana IDENTIFIED BY "1234";

Note que na coluna Host aparece o símbolo %


para a usuária ana, significando que ela pode
acessar o SGBD de qualquer local.
451
Banco de Dados

Modelagem DDL
CREATE USER Alteramos a senha do usuário
marcos para 1234 com essa
3º EXEMPLO: declaração.
Criando um usuário de nome marcos sem
senha definida no momento: Nas versões mais recentes do
MySQL, a declaração SET
CREATE USER marcos@localhost; PASSWORD foi deprecada, e não
será mais utilizada nas próximas
versões.
Para alterar ou configurar uma senha para
esse usuário posteriormente, use o comando
SET PASSWORD:

SET PASSWORD FOR 'marcos'@'localhost' = PASSWORD('1234');


452
Banco de Dados

Modelagem DDL
RENAME USER

Usada para renomear um usuário do


MySQL. Se o usuário possuir privilégios
configurados, eles são mantidos para o
novo nome de usuário.

Sintaxe:
RENAME USER nome_atual TO novo_nome;

453
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Modelagem DDL
RENAME USER

1º Exemplo:
Vamos renomear a usuária ana para monica:

RENAME USER ana TO monica;

454
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Modelagem DDL
DROP USER
Usada para excluir um usuário do MySQL. Esta Visualizando o exemplo abaixo, o
declaração elimina o usuário e seus privilégios do conceito de comando revogar pode
sistema. ser facilmente entendido

Sintaxe:
DROP USER nome_usuário;

Exemplo:
Vamos remover a usuária mônica:
DROP USER monica;
455
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Modelagem DDL
ATIVIDADE
1. O que é DCL?
2. Quais são os comandos DCL?
3. O que é o comando grant?
4. Explique a funcionalidade do comando revoke grant option.
5. Apresente a sintaxe e um exemplo do comando revoke.
6. Explique o que é a possibilidade de ALL PRIVILEGES.
7. Crie um comando DCL utilizando a funcionalidade all privileges.
8. Crie um comando Create user.
9. Crie um comando drop
10. Explique o comando rename

456
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

TEMA 06
Conectividade em Python
Imagem: https://pixabay.com/pt/illustrations/bolsa-de-valores-economia-mundial-913956/
Banco de Dados

Conectividade em Python

Você necessita de um banco de


dados para salvar informações em
seus programas do Python.

Primeiro temos que construir


conexão com o MySQL.

O seguinte irá se conectar ao


banco de dados MySQL no
programa Python.

458
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Conectividade em Python
Para criar uma conexão com o banco
Primeiro nós importamos o pyMySQL, de dados, use o nome de usuário e a
então estabelecemos uma conexão. senha do seu banco de dados MySQL:

O pyMySQL.connect ( ) leva quatro


argumentos.

O primeiro é o nome do host, ou seja, o


localhost, e os três restantes são como são
declarados.

Usando esta conexão, criamos um cursor


que será usado para diferentes consultas.

459
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Conectividade em Python
CRIANDO UM BANCO DE DADOS EXEMPLO
Crie um banco de dados chamado "mydatabase":
Para criar um banco de dados no
MySQL, use uma instrução import mysql.connector
"CREATE DATABASE": mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword"
)
mycursor = mydb.cursor()
mycursor.execute("CREATE DATABASE mydatabase")

460
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Conectividade em Python EXEMPLO


Retorne uma lista dos bancos
de dados do seu sistema:

VERIFIQUE SE EXISTE
BANCO DE DADOS

Você pode verificar se existe um


banco de dados listando todos os
bancos de dados em seu sistema
usando uma instrução "SHOW
DATABASES":

461
Banco de Dados

Conectividade em Python
Ou você pode tentar EXEMPLO
acessar o banco de dados Tente se conectar ao banco de dados "meu banco de dados":
ao fazer uma conexão:
import mysql.connector
mydb = mysql.connector.connect(
="mydatabase"host="localhost",
user="yourusername",
password="yourpassword",
database
)

462
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Conectividade em Python
PYTHON MYSQL CREATING TABLE

Vamos agora criar uma tabela chamada


Artist com colunas - name, id e track

463
Banco de Dados

Conectividade em Python
PYTHON MYSQL INSERT

Agora nosso interesse é inserir


algumas entidades de linha na tabela.

Primeiro você tem que escrever as


consultas para inserir dados diferentes
e, em seguida, executá-lo com a ajuda
do cursor.

464
Banco de Dados

Conectividade em Python
PYTHON MYSQL SELECT

Nós inserimos duas linhas no código


acima. Agora queremos recuperá-los.
Para fazer isso, dê uma olhada no
seguinte exemplo:

465
Banco de Dados

Conectividade em Python
PYTHON MYSQL SELECT EXEMPLO
Selecione o (s) registro (s) em que o endereço seja
Selecione com um filtro "Park Lane 38": resultado:

Ao selecionar registros de uma import mysql.connector


tabela, você pode filtrar a seleção mydb = mysql.connector.connect(
usando a instrução "WHERE": host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)

466
Banco de Dados

Conectividade em Python
PYTHON MYSQL SELECT CONTINUAÇÃO...

mycursor = mydb.cursor()

sql = "SELECT * FROM customers WHERE address ='Park Lane 38’”

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:

print(x)

467
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Conectividade em Python
CARACTERES CURINGA EXEMPLO
Selecione os registros em que o endereço contenha a
palavra "caminho":
Você também pode selecionar os
registros que constam, incluindo import mysql.connector
ou terminam com uma mydb = mysql.connector.connect(
determinada letra ou frase. host="localhost",
user="yourusername",
Use o % para representar password="yourpassword",
caracteres curinga: database="mydatabase“
)

468
Banco de Dados

Conectividade em Python
CARACTERES CURINGA CONTINUAÇÃO...

mycursor = mydb.cursor( )

sql = "SELECT * FROM customers WHERE address LIKE '%way%’”

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:

print(x)
469
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Conectividade em Python
CRUD
(Create, Read, Update e Delete)

Pode ser traduzido como: criar,


ler, atualizar e excluir, engloba os
principais comandos da linguagem
SQL (Structured Query Language)
para a manipulação de dados, que
são: INSERT (inserir), READ (ler),
UPDATE (alterar) e DELETE
(remover).

470
Imagem: https://pixabay.com/pt/vectors/big-data-servidor-prateleira-6100853/
Banco de Dados

Conectividade em Python
INSERT – CREATE

Esse comando é responsável


por inserir dados na tabela.

Assim, toda vez que você


quiser adicionar algo novo,
você precisa usar o comando
INSERT, seguido do campo e do
valor que você quer adicionar.

471
Banco de Dados

Conectividade em Python
SELECT – READ

O SELECT é de longe o
comando mais utilizado do
CRUD. Justamente porque é ele
quem traz todo o resultado da
busca que você quer saber.

Assim, ele traz para você


exatamente o que você quer
saber quando pesquisa algo no
banco de dados.

472
Banco de Dados

Conectividade em Python
Exemplo
UPDATE
UPDATE cliente SET endereco = ‘Rua da Flor’ WHERE
nome = ‘Joana das Flores’;
O comando UPDATE tem por
finalidade a atualização dos
Para atualizar um campo, basta especificar qual campo
dados que você inseriu na
você vai modificar, com o valor antigo pelo valor que você
tabela. Se por algum motivo
quer substituir.
você quer modificar um campo,
atualizar o valor ou acrescentar
novos dados, é o UPDATE que
você vai utilizar.

Python MySQL Update

473
Banco de Dados

Conectividade em Python
DELETE

Por fim temos o comando DELETE


Exemplo
que simplesmente exclui o dado
DELETE from cliente WHERE nome = ‘Joana das Flores’;
especificado.

Muito cuidado, pois, uma vez


excluído não tem Ctrl + Z para
voltar no tempo e desfazer o erro.

Python MySQL Delete

474
Banco de Dados

Conectividade em Python
PYTHON MYSQL – DROP TABLE

475
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Conectividade em Python
IMPEDIR INJEÇÃO DE SQL
Exemplo
Quando os valores da consulta são Escape dos valores da consulta usando o
fornecidos pelo usuário, você deve %s método de placholder :
escapar dos valores.
import mysql.connector
Isso evita injeções de SQL, que é uma mydb = mysql.connector.connect (
técnica comum de hacking para destruir host="localhost",
ou usar indevidamente seu banco de user="yourusername",
dados. password="yourpassword",
database="mydatabase"
O módulo mysql.connector tem métodos )
para escapar dos valores da consulta:

476
Banco de Dados

Conectividade em Python
IMPEDIR INJEÇÃO DE SQL CONTINUAÇÃO...

mycursor = mydb.cursor()

sql = "SELECT * FROM customers WHERE address = %s“

adr = ("Yellow Garden 2", )

mycursor.execute(sql, adr)

myresult = mycursor.fetchall()

for x in myresult:

print(x)
477
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Conectividade em Python
LIMITE O RESULTADO
Exemplo
Você pode limitar o número de registros Selecione os 5 primeiros registros na
retornados da consulta, usando uma tabela "clientes":
instrução "LIMIT":
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)

478
Banco de Dados

Conectividade em Python
LIMITE O RESULTADO
CONTINUAÇÃO...

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM customers LIMIT 5")

myresult = mycursor.fetchall()

for x in myresult:

print(x)

479
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados
Exemplo
Conectividade em Python Comece na posição 3 e retorne 5 registros:

Comece de outra posição import mysql.connector

Se você deseja retornar cinco registros, a mydb = mysql.connector.connect(


partir do terceiro registro, você pode host="localhost",
usar uma palavra-chave "OFFSET": user="yourusername",
password="yourpassword",
database="mydatabase“
)

mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM
customers LIMIT 5 OFFSET 2")
myresult = mycursor.fetchall()
for x in myresult:
print(x) 480
Imagem: https://pixabay.com/pt/illustrations/big-data-dados-anal%c3%adticos-dados-4156820/
Banco de Dados

Conectividade em Python
ATIVIDADE
1. O que é o Python?
2. Por que é uma ferramenta interessante de se usar com MySQL?
3. Crie um comando para inserir uma linha usando Python e MySQL.
4. Crie um comando para selecionar os dados inseridos usando Python e MySQL.
5. Crie um comando para atualização de dados usando Python e MySQL.
6. Crie um comando para deletar um objeto de banco de dados usando Python e MySQL.
7. O que é o CRUD em Python e MySQL.
8. Apresente um exemplo de CRUD.
9. Explique como criar um banco de dados MySQL e Python.
10. Como limitar buscas?

481
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

Conectividade em Python
DATA WAREHOUSE
O surgimento do conceito Data
Warehouse surgiu em decorrência às
dificuldades que muitas organizações O volume de dados e a dificuldade
começaram a ter com uma grande de reuni-los para a análise
quantidade de dados que suas aplicações eficiente, foram os responsáveis
estavam gerando.
pela iniciativa de reunir, em um
único local, os dados considerados
relevantes ao processo decisório.

482
Banco de Dados

Conectividade em Python
DATA WAREHOUSE
Evolução Tecnológica
Esses programas têm como
Com o avanço da internet e
princípio percorrer os arquivos do
crescimento das transações online banco de dados usando condições
com alta performance, começaram a e critérios e, ao encontrar os
ser necessários programas de dados específicos, direciona-os
extração de dados.
para um arquivo de extração do
banco de dados.

483
Banco de Dados

Conectividade em Python
DATA WAREHOUSE
Evolução Tecnológica

O processo de extração se popularizou


rapidamente, em decorrência do
aumento de informações e
necessidade de análise de dados por
todos os segmentos de organizações,
fossem privadas ou governamentais,
formando a chamada “arquitetura de
desenvolvimento espontâneo” ou
“teia de aranha”.

484
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Conectividade em Python
DATA WAREHOUSE
O Ambiente Projetado
Data warehouse é uma
coleção de dados orientada
A arquitetura de desenvolvimento
espontâneo não era suficiente para por assuntos, integrada,
atender as necessidades do futuro das variante no tempo e não
empresas, fazendo-se necessário uma volátil, que tem por objetivo
mudança de arquitetura, surgindo o
ambiente projetado de Data Warehouse.
dar suporte aos processos de
tomada de decisão.

485
Banco de Dados

Conectividade em Python
• Permitem que sistemas mais antigos
DATA WAREHOUSE continuem em operação;
O Ambiente Projetado
• Consolidam dados inconsistentes dos
sistemas mais antigos em conjuntos
Em geral, um Data warehouse requer a coerentes;
consolidação de outros recursos de dados
além dos armazenados em banco de • Extraem benefícios de novas
dados relacionais, incluindo informações informações oriundas das operações
provenientes de planilhas eletrônicas, correntes;
documentos textuais, etc.
• Provêm ambiente para planejamento
Sistemas de Data warehouse revitalizam de novos sistemas de cunho
sistemas da empresa, pois: operacional.
486
Banco de Dados

Conectividade em Python
DATA WAREHOUSE
Extração de Dados

O objetivo do Data Warehouse é centralizar


os dados retirados de diversas fontes e
facilitar a consulta.
Com diversos formatos,
entre os quais:
Os dados podem ser extraídos de: • Bancos de Dados (SQL)
• Planilhas; • XLS
• ERPs; • TXT
• CRMs • CSV
487
Imagem: https://pixabay.com/pt/vectors/dados-classifica%c3%a7%c3%a3o-relat%c3%b3rio-7042739/
Banco de Dados

Conectividade em Python
TIPOS DE DATA WAREHOUSE

Integrado: Variável ao longo do tempo:


Data Warehouse integrados têm como Já os que se caracterizam por ser
principal função gerar relações variáveis ao longo do tempo usam
consistentes entre dados de fontes recursos de data mining, que tomam
variadas. Eles são capazes de padronizar como referência principal um ou mais
informações que vêm de sistemas períodos.
diferentes, permitindo que, Dessa forma, a mineração de dados não
posteriormente, elas sejam tratadas se aplica em tempo real, como acontece
dentro dele. em bancos OLTP.

488
Banco de Dados

Conectividade em Python
TIPOS DE DATA WAREHOUSE

Por assunto: Não volátil:


Por sua vez, os armazenamentos de Dados em Data Warehouses são sempre
dados organizados por assunto são tratados para posterior processamento.
aqueles que atendem aos objetivos de Isso significa que, antes de eles serem
negócios em contextos específicos. utilizados pelo usuário final, devem
Como exemplo, um escritório contábil passar por processos de exclusão e
que precisa listar e cadastrar diferentes consultas, nos quais são modificados.
clientes e contribuintes, assim como os Desse modo, eles passam a ser estáticos,
impostos que eles tenham que apurar e ou não voláteis.
recolher.
489
Banco de Dados

Conectividade em Python
ATIVIDADE
1. que é um data warehouse?
2. Para que serve?
3. Como é utilizado?
4. Porque utilizar um DW nas empresas?
5. Quais as principais características de um DW?
6. Como os dados são armazenados em um DW?
7. Explique o conceito de modelo dimensional.
8. que são ferramentas OLAP? Para que serve?
9. Qual a diferença entre OLAP e OLTP?
10. Quais os métodos de armazenamento das ferramentas OLAP?

490
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
Banco de Dados

TEMA 07
Business Intelligence
Imagem: https://pixabay.com/pt/illustrations/bolsa-de-valores-economia-mundial-913956/
Banco de Dados

Business Intelligence
No competitivo mundo dos negócios, a
sobrevivência de uma empresa depende
de como rápido eles são capazes de
reconhecer dinâmicas de negócios em
mudança e desafios, e responder
corretamente e rapidamente.

As empresas também devem antecipar


tendências, identificar novas
oportunidades, transformar sua
estratégia e reorientar os recursos para
ficar à frente da competição. A chave
para o sucesso é a informação.

492
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Business Intelligence

As empresas coletam volumes significativos


de dados e têm acesso a ainda mais dados de
fora de seus negócios.

Eles precisam da capacidade de transformar


esses dados brutos informações acionáveis,
capturando, consolidando, organizando,
armazenando, distribuir, analisar e fornecer
acesso rápido e fácil a ele. Isto é vantagem
competitiva, mas também o desafio. Tudo isso
é o objetivo da inteligência de negócios (BI).

493
Imagem: https://pixabay.com/pt/photos/empres%c3%a1rio-tablet-dire%c3%a7%c3%a3o-cidade-3213659/
Banco de Dados

Business Intelligence

Com a utilização dos dados, das


informações agrupadas e do conhecimento, Com essa poderosa solução,
é possível compreender o conceito
as empresas obterão
conhecido atualmente por inteligência de
negócios (BI - Business Intelligence) que, velocidade de respostas
segundo a definição, serve para aumentar a tanto no nível estratégico
competitividade e alavancar os resultados como no tático e
empresariais.
operacional, conquistando
com isso enormes ganhos.

494
Banco de Dados

Business Intelligence

Na atualidade, qualquer empresa


necessita de uma integração de
seus dados e informações
procedente de sua cadeia de valor,
e toda organização que utiliza o BI
para resolver seus problemas
operacionais, pode beneficiar-se
com a autonomia da gestão de
negócios ou projetos ao planejar e
gerenciar, tanto dos riscos e ações
estratégicas, como o processo de
controle de mudanças.
495
Imagem: https://pixabay.com/pt/vectors/grande-neg%c3%b3cio-dinheiro-londres-4496465/
Banco de Dados

Business Intelligence 3. O BI tem como vantagem sua


tecnologia, que é capaz de superar a
concorrência e, ao mesmo tempo, atender
VANTAGENS às necessidades de informação dos
gestores da organização.
1. O BI proporciona alguns benefícios,
como a expansão do conhecimento do 4. O BI agiliza processos, diminui o
negócio, assim como uma melhor visão da desperdício de tempo e transforma dados
variação do mercado com a perspectiva de em informações relevantes. A implantação
novas oportunidades. de uma ferramenta de BI consegue agilizar
processos do negócio através de
2. Ele permite uma visão nova para a automatização, extraindo dados, fazendo
organização buscar maior eficácia e maior cruzamentos e análises, montando e
competitividade no mercado com suas enviando relatórios com gráficos de forma
ferramentas de análise e cruzamento de automática e inteligente.
informações.
496
Banco de Dados

Business Intelligence
VANTAGENS
5. Existem inúmeras outras vantagens na
adoção de BI, como redução de retrabalho,
informações confiáveis, documentos
padronizados e recebimento das informações
em tempo real, entre outros.

6. Um dos principais benefícios do BI é a sua


capacidade de fornecer informações
confiáveis e precisas em tempo real para as
decisões, planejamento estratégico e para a
sobrevivência organizacional.
497
Imagem: https://pixabay.com/pt/photos/empres%c3%a1rio-planejamento-de-produ%c3%a7%c3%a3o-3075837/
Banco de Dados

Business Intelligence
DESVANTAGENS
1. A principal desvantagem da aplicação do
BI em pequenas e médias empresas é o alto
custo da ferramenta é a mais apontada.
Muitas vezes estas empresas não possuem
recursos financeiros necessários para
3. Muitos projetos não alcançam o sucesso
viabilizar o projeto.
por falta de foco da empresa e dos
envolvidos no processo, faltando
2. Além disso, pode ser que seja necessária a maturidade da gestão para trabalhar com
adaptação de toda sua estrutura operacional indicadores e múltiplas informações, que
para a implantação do BI, gerando despesas podem acabar dificultando a análise
de hardware e software, assim como estratégica.
despesas com mão-de-obra especializada.
498
Imagem: https://pixabay.com/pt/photos/ligar-desligar-d%c3%b3lar-o-neg%c3%b3cio-2932999/
Banco de Dados

Business Intelligence
MODELAGEM DE DADOS

Tradicionalmente, os modeladores de
dados utilizaram o diagrama E/R,
desenvolvido parte do processo de
modelagem de dados, como uma mídia
de comunicação com o negócio analistas.

O foco do modelo de E/R é capturar as


relações entre várias entidades da
organização ou processo para o qual
projetamos o modelo.

499
Imagem: https://pixabay.com/pt/vectors/big-data-dados-base-de-dados-7216839/
Banco de Dados

Business Intelligence
MODELAGEM DE DADOS
No entanto, o foco do modelo
dimensional está nos negócios.
Modelagem dimensional nos dá uma
capacidade melhorada para visualizar as
questões muito abstratas que os analistas
de negócios são obrigados a responder.

Utilizando modelagem dimensional os


analistas podem facilmente entender e
navegar na estrutura de dados e explorar
completamente os dados.

500
Imagem: https://pixabay.com/pt/photos/empreendedor-id%c3%a9ia-compet%c3%aancia-1340649/
Banco de Dados

Business Intelligence
MODELAGEM DE DADOS
Modelo Dimensional

Um modelo dimensional também é


comumente chamado de esquema em
estrela. Este tipo de modelo é muito
popular no Data Warehousing porque
pode fornecer consultas muito
melhores desempenho, especialmente
em consultas muito grandes, do que
um modelo E/R.

501
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Business Intelligence
MODELAGEM DE DADOS
Modelo Dimensional

Consiste, tipicamente, de uma grande


tabela de fatos (conhecida como tabela
de fatos), com várias outras tabelas em
torno dele que contém dados
descritivos, chamados dimensões.

Quando é desenhado, assemelha-se à


forma de uma estrela, portanto, o
nome.

502
Imagem: Proz – Técnico em Desenvolvimento de Sistemas – Módulo Programação de Sistemas
Banco de Dados

Business Intelligence
MODELAGEM DE DADOS
Características da Tabela Fato
Cada tabela de fatos contém as
chaves para as tabelas de
dimensões associadas.
A tabela de fatos contém valores
numéricos do que você pode medir.
Essas são chamadas chaves
Por exemplo, um valor de fato de 20
estrangeiras na tabela de fatos.
pode significar que 20 itens foram
vendidos. Tabelas de fatos geralmente contêm
um pequeno número de colunas.

503
Banco de Dados

Business Intelligence
É numérica e usada para gerar
MODELAGEM DE DADOS agregados e resumos. Os valores de
Características da Tabela Fato dados precisam ser aditivos ou
semi-aditivos para permitir resumo
de muitos valores.
Comparado às tabelas de dimensão, as
tabelas de fatos possuem um grande Todos os fatos no Segmento 2
número de linhas. devem referir-se diretamente às
chaves de dimensão Segmento 1 da
As informações em uma tabela de fatos estrutura, permite o acesso a
possuem características, como: informações adicionais das tabelas
de dimensão.

504
Banco de Dados

Business Intelligence
ATIVIDADE
1. O que é BI?
2. Em quais situações o uso do BI nas empresas é indicado?
3. Qual o ganho que as ferramentas de BI podem trazer para as empresas?
4. Quais as principais características de um BI.
5. Qual é a diferença entre tabela Fato e tabela Dimensão?
6. Como as tabelas fato e dimensão se relacionam?
7. Explique o que é modelo estrela.
8. Explique o que é modelo snow flake ou floco de neve.
9. Qual a importância do modelo estrela para o uso do BI?
10. Quais as vantagens do BI?

505
Imagem: https://pixabay.com/pt/illustrations/monumento-pensador-pensar-pot%c3%aancia-1027556/
506

Você também pode gostar