32
www.acasadoconcurseiro.com.br Informática Professor Julio Alves

Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

  • Upload
    dobao

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br

Informática

Professor Julio Alves

Page 2: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja
Page 3: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br 3

Informática

LÓGICA DE PROGRAMAÇÃO

Introdução

Nesta seção, iniciaremos nossos estudos sobre Lógica de Programação. Mas, antes de começarmos, seria útil uma reflexão sobre o significado da palavra “Lógica”. Assim, o que é Lógica?

A Lógica pode ser vista como a arte de pensar corretamente. A lógica visa a colocar ordem no pensamento.

Utilizamos lógica de forma natural todos os dias. Por exemplo:

a) Sei que o livro está no armário. Sei que o armário está fechado. Logo, concluo que tenho de abrir o armário para pegar o livro.

b) Sei que sou mais velho que João. Sei que João é mais velho que José. Então, concluo que eu sou mais velho que José.

• Todos os filhos de João são mais altos do que Maria.

• Antônio é filho de João

Então, o que podemos concluir logicamente?

Construção De Algoritmos

Podemos definir a Lógica de programação como um conjunto de técnicas para encadear pensamentos a fim de atingir determinado objetivo.

Um algoritmo é, formalmente, uma sequência finita de passos que levam à execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções organizadas para cumprir um objetivo específico.

Quando criamos um algoritmo, construímos uma sequência de atividades que levam à solução de um problema.

Page 4: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br4

Problema: Trocar uma lâmpada. Sequência de Passos para a Solução:

1. Pegue uma escada;

2. Posicione a escada embaixo da lâmpada;

3. Pegue uma lâmpada nova;

4. Suba na escada;

5. Retire a lâmpada velha;

6. Coloque a lâmpada nova.

1.2.1 Algoritmos Com Estruturas De Decisão

Os algoritmos que construímos até agora apresentam uma sequência de passos que devem ser seguidos para atingir um objetivo bem definido. Note que todos os passos dos algoritmos devem ser executados a fim de que o objetivo seja alcançado.

Porém, existem algoritmos nos quais a execução de alguns passos pode depender de decisões a serem tomadas. Dessa forma, algum fato indicará se um ou mais passos do algoritmo serão executados ou não.

Por exemplo, o nosso primeiro algoritmo define uma sequência de passos para trocar uma lâmpada. Em momento algum perguntamos se a lâmpada está queimada. Simplesmente trocamos a lâmpada sem fazer qualquer teste. Para resolver esse problema, podemos acrescentar ao nosso algoritmo um teste que verifique se a lâmpada deve ser trocada:

1. Ligue o interruptor

2. Se a lâmpada não acender

2.1. Pegue uma escada;

2.2. Posicione a escada embaixo da lâmpada;

2.3. Pegue uma lâmpada nova;

2.4. Suba na escada;

2.5. Retire a lâmpada velha;

2.6. Coloque a lâmpada nova.

Page 5: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

Informática – Algoritmos e Lógica de Programação – Prof. Julio Alves

www.acasadoconcurseiro.com.br 5

Ao pensarmos na solução de um problema, encontramos ações imperativas que são expressas por comandos. Os algoritmos não são aplicados apenas ao mundo da Informática; pelo contrário, usamos – até sem perceber – algoritmos em todos os momentos de nossa vida. Uma receita de cozinha é claramente um algoritmo

CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES

Vamos aprender agora os conceitos básicos referentes à programação de computadores. Desenvolveremos algoritmos utilizando o Português “Estruturado”: uma notação comum em provas e exames de concursos públicos.

Não é possível utilizar esta sintaxe para produzir programas de computadores reais. Entretanto, ao final desta sessão você será capaz de desenvolver algoritmos muito parecidos com os programas interpretados por computadores.

Vamos introduzir agora alguns elementos novos. Note quais são as novas palavras chave inseridas no exemplo a seguir:

Algoritmo Para ir de casa para o Trabalho

início

1. Andar até o ponto de ônibus

2. Aguardar o ônibus

3. Quando avistar o ônibus correto, fazer sinal

se o ônibus não parar, então

xingar o motorista

Voltar para o Passo 2

Senão

Subir no ônibus

Pagar passagem

se houver lugar disponível então

Sentar

senão

Escolher um lugar e permanecer em pé

fim-se

Quando chegar próximo do local de trabalho, apertar botão “parada solicitada”

No ponto, descer do ônibus

Andar até o trabalho

fim-se

fim

Page 6: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br6

Os elementos destacados são palavras chave que utilizaremos na construção dos algoritmos. Estas e as outras estruturas que veremos a seguir compõe o que chamaremos de “Português Estruturado”.

IDENTIFICADORES

As designações que usamos em nossos algoritmos precisam receber um nome (rótulo). Chamados estes nomes de Identificadores e possuem algumas regras de formação:

• O primeiro caractere deve ser, obrigatoriamente, uma letra.

• Do segundo caractere em diante são permitidos números e letras. O símbolo de “sublinhado” ( _ ) pode ser usado para separar nomes compostos. Portanto, não são permitidos espaços, caracteres acentuados e símbolos especiais na composição do nome de um identificador;

• Palavras reservadas (em inglês ou português) não podem ser usadas com identificadores. (Exemplo: begin, end, for, var, inicio, fim, para, etc...)

Exemplos:

Nome

Preco_Unitar

io valor1

VARIÁVEIS

Para que os computadores armazenem dados em memória, vamos utilizar, para fins de organização dos dados que guardaremos na memória utilizaremos o que chamamos de variáveis.

Assim, a variável é o local da memória onde guardamos os dados e o nome da variável é um identificador conforme definição anterior.

Exemplos:

ValorUnitario

nome_conjuge

Dependendo da exigência da banca, é possível que tenhamos variáveis declaradas, ou seja, reserva-se um local da memória informando que tipo de dados residirão ali. Sendo assim, a sintaxe será a seguir:declare

A : inteiroB : caracter

Page 7: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

Informática – Algoritmos e Lógica de Programação – Prof. Julio Alves

www.acasadoconcurseiro.com.br 7

TIPOS BÁSICOS DE DADOS

Se a estratégia for de declaração de variáveis, precisamos dizer que tipo elas são. Em seguida, o escopo dos principais tipos de dados.

• INTEIRO: qualquer número inteiro, negativo ou positivo. Ex.: -15, 0, 101

• REAL: qualquer número real, negativo ou positivo. Ex.: -1, -0.5, 0, 5, 9.5

• STRING / CARACTER / TEXTO: qualquer conjunto de caracteres alfanuméricos. Ex.: “AB”, “ 123”, “ A123” , “CASA”

• LÓGICO: conjunto de valores ( FALSO ou VERDADEIRO )

COMANDO DE ATRIBUIÇÃO

Após criarmos uma variável, muito provavelmente vamos armazenar valores nela.

Para atribuirmos um valor a uma variável, utilizamos a sintaxe a seguir:

Identificador = expressão

Ou

Nome ← “ATA”

Operador Operação Exemplo

+ Adição 10 + 15

- Subtração 20 – 10

* Multiplicação 3 * 5

/ Divisão 5 / 2 = 2,5

MOD ou % Resto de uma divisão 7 mod 2 = 1

OPERADORES RELACIONAIS

Operador Relação

= Igualdade

<> Diferente

> Maior que

Page 8: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br8

>= Maior ou igual que

< Menor que

<= Menor ou igual que

OPERADORES LÓGICOS

É frequente precisarmos analisar expressões lógicas, aquelas que só possuem dois valores possíveis: Verdadeiro ou Falso. Os operadores usados em expressões lógicas são os Operadores Lógicos. Veja:

Operador Relação

Não (Not) Negação lógica

E (And) E lógico

Ou (Or) Ou lógico

Para lembrar da Prioridade na ordem dos operadores: NÃO – Not (Negação) And (E) Or (Ou)

COMANDOS DE ENTRADA E SAÍDA

Nos algoritmos, provavelmente precisaremos receber dados e também precisamos expor informações. Os dados de entrada podem vir do teclado, arquivo, etc. Para nosso concurso, não importa a entrada.

Para obtermos e expormos esses dados, utilizamos os seguintes comandos:

• LEIA

o LER (variável1, variável2, ..., variaveln)

• ESCREVA

o ESCREVER(variáveis e/ou expressões)

• IMPRIMA

o IMPRIMA(variáveis e/ou expressões)

Exemplo:

Inicio

leia(x1);

Page 9: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

Informática – Algoritmos e Lógica de Programação – Prof. Julio Alves

www.acasadoconcurseiro.com.br 9

x2 = x1 * 2;

escreva(‘O dobro do número é ‘, x2);

imprima(‘O triplo do número é ‘, x1 * 3);

fim

Algoritmos com Repetição

Até agora, nos exercícios e exemplos, sempre foi possível resolver os problemas com instruções em sequencia executadas apenas uma vez.

Existem três estruturas básicas para a construção de algoritmos, que são: algoritmos sequenciais, algoritmos com seleção e algoritmos com repetição.

A combinação dessas três estruturas permite-nos a construção de algoritmos para a resolução de problemas extremamente complexos.

Nesta seção veremos as estruturas de repetição possíveis em algoritmos e existentes na maioria das Linguagens de Programação.

Uma estrutura de repetição permite que uma sequência de comandos seja executada várias vezes, até que uma condição (teste lógico) seja satisfeita, ou seja, repete-se um conjunto de instruções sem que seja necessário escrevê-las várias vezes.

As estruturas de repetição também são chamadas de Laços ou Loops.

As estruturas de repetição, assim como a de decisão (seleção), necessitam de uma avaliação de uma condição (teste).

Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja repetido um número determinado (ou indeterminado) de vezes, sem que o

Page 10: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br10

código correspondente, ou seja, as instruções a serem repetidas tenham que ser escritas mais de uma vez.

Existem três tipos de estruturas de repetição: Repita-Até, Enquanto-Faça e Para-Até-Faça, cada uma com suas peculiaridades e apropriada para cada problema, normalmente é possível resolver um mesmo problema usando qualquer uma das estruturas de repetição, mas, na maioria das situações, haverá uma mais adequada.

A seguir, veremos as características de cada uma das estruturas de repetição.

Estrutura de Repetição: REPITA-ATÉ

Na estrutura Repita-Até as instruções a serem repetidas são executadas, no mínimo uma vez, já que a condição para parar a repetição fica no final da repetição.

Nesta estrutura, a repetição é finalizada quando a condição for verdadeira. Isto significa que o conjunto de instruções dentro do laço serão repetidas até que o valor do teste seja verdadeiro.

Estrutura de Repetição: ENQUANTO-FAÇA

Na estrutura Enquanto-Faça as instruções a serem repetidas podem não ser executadas nenhuma vez, pois o teste fica no início da repetição, então a execução das instruções (que estão "dentro" da repetição) depende do teste.

Nesta estrutura, a repetição é finalizada quando o teste é Falso (F), ou seja, enquanto o teste for Verdadeiro as instruções serão executadas e, quando for Falso, o laço é finalizado.

Page 11: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

Informática – Algoritmos e Lógica de Programação – Prof. Julio Alves

www.acasadoconcurseiro.com.br 11

Para

Usamos a estrutura Para, quando precisamos repetir um conjunto de comandos um número pré-definido de vezes. Utiliza uma variável de controle, que é incrementada em 1 unidade de um valor inicial até um valor final.

para variável = valor_inicial até valor_final [passo intervalo] faça

comando 1

comando 2

comando n

fim-para

Exemplo:

para aux = 1 até 10 faça

resultado <- 5 * aux;

fim-para

Vetores

Vetores não mais são do que variáveis que permitem o armazenamento de múltiplos valores. Ou seja, após declarada, é possível lhe ser atribuída diversos valores em posições/índices diferentes.

Ex:

M[0] <- “João”

M[1] <- “José”

M[2] <- “Maria”

Imagine uma situação onde precisamos criar um algoritmo para ler o nome de 5 pessoas, e mostrasse esses nomes na ordem inversa de leitura. Usualmente você pensaria em cinco variáveis: nome1, nome2, nome3, nome4 e nome5.

início

ler(nome1);

ler(nome2);

ler(nome3);

ler(nome4);

Page 12: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br12

ler(nome5);

escrever(“Ordem Inversa:”);

escrever(nome5);

escrever(nome4);

escrever(nome3);

escrever(nome2);

escrever(nome1);

fim

Como resolveríamos o mesmo problema se tivéssemos que ler 1000 nomes?

Page 13: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br 13

Informática

BANCOS DE DADOS

Muitos autores definem Bancos de dados (BD) de forma diferente, porém em todas elas têm-se uma ideia de coleção ou conjunto de dados armazenados que servem ou são usados por algumas situações específicas. A definição de banco de dados como ‘uma coleção de dados relacionados’ é muito geral.

Por exemplo, considere a coleção de palavras deste texto como sendo dados relacionados e, portanto, constitui um banco de dados. Entretanto, o uso comum do termo ‘banco de dados’ é usualmente mais restrito.

O conceito de banco de dados esta muito presente em nosso dia-a-dia e faz parte de nossa vida. Banco de dados (BD) desempenha um papel crítico em muitas áreas onde computadores são utilizados.

O BD está presente em muitas áreas diferentes (negócios, engenharia, educação, medicina, etc.). Um arranjo aleatório de dados não pode ser considerado um banco de dados.

Definições comuns

1. Um banco de dados “é uma coleção de dados inter-relacionados, representando informações sobre um domínio específico”, ou seja, sempre que for possível agrupar informações que se relacionam e tratam de um mesmo assunto, posso dizer que tenho um banco de dados.

2. E uma coleção de dados logicamente coerente que possui um significado implícito cuja interpretação dada por uma determinada aplicação;

3. Representa abstratamente uma parte do mundo real, conhecida como Minimundo ou Universo de Discurso (UD), que é de interesse de certa aplicação;

Podemos exemplificar situações clássicas como uma lista telefônica, um catálogo de CDs ou um sistema de controle de RH de uma empresa.

Já um sistema de gerenciamento de banco de dados (SGBD) é um software que possui recursos capazes de manipular as informações do banco de dados e interagir com o usuário. Exemplos de SGBDs são: Oracle, SQL Server, DB2, PostgreSQL, MySQL, o próprio Access ou Paradox, entre outros.

Page 14: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br14

Por último, temos que conceituar um sistema de banco de dados como o conjunto de quatro componentes básicos: dados, hardware, software e usuários. A Figura a seguir ilustra os componentes de um sistema de banco de dados.

Os objetivos de um sistema de banco de dados são o de isolar o usuário dos detalhes internos do banco de dados (favorecer a abstração de dados) e promover a independência dos dados em relação às aplicações, ou seja, tornar independente da aplicação, a estratégia de acesso e a forma de armazenamento.

Abstração de dados

O grande objetivo de um sistema de BD é oferecer uma visão “abstrata” dos dados aos usuários. Os detalhes referentes à forma como estes dados estão armazenados e mantidos não interessa aos usuários, mas a disponibilidade eficiente destes dados é que são fundamentais.

Esta abstração se dá em três níveis de arquitetura:

• Nível de visão do usuário: as partes do banco de dados que o usuário tem acesso de acordo com a necessidade individual de cada usuário ou grupo de usuários;

• Nível conceitual: define quais os dados que estão armazenados e qual o relacionamento entre eles;

• Nível físico: é o nível mais baixo de abstração, em que define efetivamente de que maneira os dados estão armazenados.

Page 15: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

Informática – Banco de Dados – Prof. Julio Alves

www.acasadoconcurseiro.com.br 15

Framework de Zackman

Camada Visão Dados Envolvido

1 Escopo/ContextoLista de coisas

importantes para o negócio

Planejador

2 Modelo de Negócios / Conceitual Modelo Conceitual Proprietário

3 Modelo de Sistema / Lógico

Modelo de dados lógico Projetista

4 Modelo Tecnológico / Físico Modelo de dados físico Projetista

5 Configuração de Componentes Definições de dados Desenvolvedor

6 Corporação Funcional Dados Empregado

Page 16: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br16

Modelo conceitual

É a descrição do BD de maneira independente ao SGBD, ou seja, define quais os dados que aparecerão no BD, mas sem se importar com a implementação que se dará ao BD. Desta forma, há uma abstração em nível de SGBD.

Essa perspectiva destaca os elementos envolvidos nas relações negociais e não negociais da organização (entidades corporativas).

Uma das técnicas mais utilizadas dentre os profissionais da área é a abordagem entidade-relacionamento (ER), onde o modelo é representado graficamente através do diagrama entidade-relacionamento (DER).

Figura 1 - Exemplo de diagrama entidade-relacionamento

O modelo acima, entre outras coisas, nos traz informações sobre Alunos e Turmas. Para cada Aluno, será armazenado seu número de matrícula, seu nome e endereço, enquanto para cada turma, teremos a informação de seu código, a sala utilizada e o período.

Modelo Lógico

Descreve o BD no nível do SGBD, ou seja, depende do tipo particular de SGBD que será usado. Não podemos confundir com o Software que será usado. O tipo de SGBD que o modelo lógico trata é se o mesmo é relacional, orientado a objetos, hierárquico, etc.

Abordaremos o SGBD relacional, por ser a exigência da grande maioria das provas. Nele, os dados são organizados em tabelas.

Aluno

mat_aluno Nome Endereço

1 Cecília Ortiz Rezende Rua dos Ipês, 37

2 Abílio José Dias Avenida Presidente Jânio Quadros, 357

3 Renata Oliveira Franco Rua Nove de Julho, 45

Page 17: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

Informática – Banco de Dados – Prof. Julio Alves

www.acasadoconcurseiro.com.br 17

Turma

cod_turma sala Período

1 8 Manhã

2 5 Noite

O modelo lógico do BD relacional deve definir quais as tabelas e o nome das colunas que compõem estas tabelas. Para o nosso exemplo, poderíamos definir nosso modelo lógico conforme o seguinte:

Aluno(mat_aluno, nome, endereco) Turma (cod_turma, sala, periodo)

É importante salientar que os detalhes internos de armazenamento, por exemplo, não são descritos no modelo lógico, pois estas informações fazem parte do modelo físico, que nada mais é que a tradução do modelo lógico para a linguagem do software escolhido para implementar o sistema.

O conceito de abstração está associado à característica de se observar somente os aspectos de interesse, sem se preocupar com maiores detalhes envolvidos.

No contexto de abstração de dados um banco de dados pode ser visto sem se considerar a forma como os dados estão armazenados fisicamente.

Exemplo:

Um programador de aplicação não precisa se importar com aspectos físicos de armazenamento dos dados.

Page 18: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br18

Propriedades Implícitas De Banco De Dados

• Um banco de dados é uma coleção logicamente coerente de dados com algum significado inerente;

• Um banco de dados é projetado e construído com dados para um propósito específico;

• Ele possui um grupo de usuários e algumas aplicações pré-concebidas, as quais esses usuários estão interessados.

Page 19: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br 19

Informática

BANCOS DE DADOS RELACIONAL

Um BD relacional possui apenas um tipo de construção, a tabela. Uma tabela é composta por linhas (tuplas) e colunas (atributos). Os relacionamentos entre os dados também são representados ou por tabelas, ou através da reprodução dos valores de atributos.

Terminologia Básica

Campo – unidade básica de informação mínima com significado

Registro – conjunto de campos

Arquivo – conjunto de registros

Banco de Dados (BD) – conjunto de arquivos e as formas de manipulação

Page 20: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br20

Tabelas

Uma tabela é um conjunto não ordenado de linhas (tuplas, na linguagem acadêmica). Cada linha é composta por uma série de campos (valor de atributo, na linguagem acadêmica).

Cada campo é identificado por um nome de campo (nome de atributo, na linguagem acadêmica). Um conjunto de campos homônimos de todas as linhas de uma tabela é uma coluna.

Comparando tabelas de um banco de dados relacional com um arquivo convencional, observamos as seguintes diferenças:

As linhas de uma tabela não têm ordenação. A ordem de recuperação é arbitrariamente estabelecida pelo banco de dados.

Os valores de campo de uma tabela são atômicos e monovalorados;

As linguagens de consulta a bases de dados relacionais permitem o acesso por quaisquer critérios envolvendo os campos de uma ou mais linhas. Não há necessidade de especificar caminhos de acesso.

Chaves

Chaves são um conceito básico que permitem identificar linhas e estabelecer relações entre linhas e tabelas de um banco de dados relacional. Em um banco de dados relacional, há pelo menos quatro tipos de chaves a serem consideradas: chaves primárias, chaves estrangeiras, candidatas e chaves alternativas

É através das chaves que conseguimos estabelecer as regras para que o SGBD possa manter a integridade referencial.

Chave Primária

As chaves primárias são uma coluna (ou um conjunto delas) dentro de uma tabela que distinguem uma linha das demais. As chaves primárias podem ser compostas por mais de uma coluna, entretanto, devem sempre respeitar o princípio da minimalidade. Uma chave é mínima quando todas as suas colunas forem efetivamente necessárias para garantir o requisito da unicidade de valores da chave.

Na abordagem relacional, ao contrário dos sistemas convencionais de arquivos, por exemplo, uma chave não é um índice ou qualquer outra estrutura de acesso. As chaves fazem apenas a restrições de integridade, ou seja, regras que devem ser obedecidas em todos o estados válidos do BD.

Page 21: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

Informática – Banco de Dados Relacional – Prof. Julio Alves

www.acasadoconcurseiro.com.br 21

Chave Estrangeira

Uma chave estrangeira é uma coluna ou uma combinação de colunas cujos valores aparecem necessariamente na chave primária de uma tabela. A chave estrangeira é o mecanismo que permite a implementação de relacionamentos em bancos de dados relacionais.

A existência de chaves estrangeiras impõe restrições que devem ser garantidas ao executar diversas operações de alterações no banco de dados.

I. Inclusão de uma linha na tabela que contém a chave estrangeira: Neste caso, deve-se garantir que o valor contido na chave estrangeira apareça na coluna da chave primária referenciada.

II. Alteração do valor de uma chave estrangeira: Deve-se assegurar que o novo valor aparece na coluna da chave primária referenciada;

III. Exclusão de uma linha da tabela que contém a chave primária referenciada pela chave estrangeira: Deve ser garantido que na coluna da chave estrangeira não apareça o valor da chave primária que será excluída.

IV. Alteração do valor da chave primária referenciada pela chave estrangeira: Deve ser garantido que na coluna da chave estrangeira não apareça o valor da chave primária que está sendo alterada. Uma chave estrangeira não referencia, necessariamente, outra tabela. Em um auto relacionamento, o valor da chave estrangeira é o próprio valor da chave primária da mesma tabela.

Chave Alternativa

Em alguns casos, mais de uma coluna (ou combinações de colunas) podem servir para distinguir uma linha das demais. Uma coluna, ou combinação, é escolhida como chave primária e as demais candidatas são tratadas como chaves alternativas.

Chave Candidata

Uma chave candidata é um identificador único que garante que nenhuma tupla será duplicada. Uma chave pode ser composta, isto é, pode ser formada por vários atributos.

Ocorrem quando em uma relação existe mais de uma combinação de atributos para a identificação única do registro.

Ex: Matrícula, CPF, RG, Título Eleitor

Leve em consideração a regra de negócio: Para cada pedido pode existir um número infinito de itens (produtos), contudo o item não pode se repetir na lista de itens de um pedido, em caso da necessidade do mesmo item a quantidade deve ser alterada.

Page 22: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br22

Considere a tabela a seguir:

pedidos(codPedido,valorTotal) PK - codPedido {Este número será único}

itensPedido(codPedido,codItem,quant,valorUnit) PK - codPedido

Suponhamos que a chave primária seja codPedido na tabela itensPedido, isso significa que este código deve ser único para os registro da tabela, contudo isso não pode ocorrer, pois existem vários produtos para um pedido, neste caso outro campo deve ser candidato a chave também para unificar o registro.

Neste caso se definirmos como candidato o atributo codItem para compor a chave primária ficaria da seguinte forma:

PK - codPedido PK - codItem

Com esta chave candidata os itens do pedido não se repetirão e o codPedido poderá repetir, ficará conforme abaixo:

codPedido codItem quant valorUnit

1 1 2 2,50

1 2 3 4,20

1 3 3 1,50

Domínios

Quando uma tabela do banco de dados é definida, para cada coluna deve ser especificado um conjunto de valores que seus campos podem assumir. Este conjunto de valores é denominado “domínio da coluna” ou “domínio do campo”. Além disso, deve-se especificar se os campos da coluna podem estar vazios, o que indica que o campo não recebeu nenhum valor de seu domínio.

As colunas nas quais não são admitidos valores vazios são chamadas “colunas obrigatórias”. Aquelas que admitem valores vazios são as denominadas “colunas opcionais”. Os SGBDs relacionais geralmente exigem que a coluna da chave primária não seja vazia (coluna obrigatória). A mesma exigência não é feita para as demais chaves.

Restrições de Integridade

Um dos objetivos primordiais de um SGBD é a integridade de dados. Dizer que os dados de um banco são íntegros significa dizer que eles refletem corretamente a realidade apresentada pelo banco de dados e são consistentes entre si. Uma restrição de integridade é uma regra de consistência de dados mantida pelo próprio SGBD. Na abordagem relacional, as restrições de integridade são abordadas nas seguintes categorias:

Page 23: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

Informática – Banco de Dados Relacional – Prof. Julio Alves

www.acasadoconcurseiro.com.br 23

Integridade de Entidade

Especifica que nenhum valor de chave primária pode ser nulo;

Integridade de Domínio

Um valor designado para um campo deve estar dentro do domínio previsto para aquele campo.

Integridade de Vazio

Através desta restrição de integridade é possível determinar se um campo pode conter valores nulos. Os campos que compõem a chave primária devem ser diferentes de vazio.

Integridade de Chave

Restrição que determina que os valores de chaves primárias e alternativas devem ser únicos.

Integridade Referencial

É a restrição que define que valores dos campos que aparecem em uma chave estrangeira devem estar presentes na coluna da chave primária da tabela referenciada.

As restrições acima relatadas são garantidas automaticamente por um SGBD relacional e o programador não precisa se preocupar em escrevê-las através de programação.

Restrições semânticas geram outras restrições de integridade que, estas sim, devem ser garantidas através da codificação.

Page 24: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja
Page 25: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br 25

Informática

SGBD – SISTEMA GERENCIADOR DE BANCO DE DADOS

Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas que habilitam usuários a criar e manter um banco de dados.

O SGBD é um software de propósito geral, que facilita o processo de definição, construção e manipulação de um banco de dados.

Definição de banco de dados envolve especificar estruturas e tipos de dados para serem gravados no banco de dados, com uma descrição detalhada de cada tipo de dado. Construção de um banco de dados é o processo de consistir e gravar inicialmente dados no banco de dados.

Manipulação de um banco de dados inclui funções como consulta por dados específicos e atualização para refletir as alterações no mundo real.

Principais Atribuições de um SGBD

BD não contém somente os dados de conteúdo armazenados, ele também armazena definições e descrições sobre a estrutura que forma o BD (metadados).

O catálogo do sistema (metadados) contém definições da estrutura de cada arquivo, o tipo e formato de armazenamento de cada item de dados, e várias restrições dos dados.

Este catálogo é usado pelo SGBD e ocasionalmente por algum usuário do BD (não é específico, mas geral, atendendo as diversas necessidades de arquivos diferentes).

Características de um SGBD

• Controle sobre a redundância;

• Espaço para armazenamento;

• Consistência na base de dados;

• Compartilhamento de Dados;

• Restrição de acesso não autorizado: Possui um sistema de segurança garantindo o acesso específico a cada usuário (personalizado para grupos ou individual), garantindo assim segurança no acesso ao BD, diferentes permissões de operação no BD, proteção de contas

Page 26: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br26

pessoais (ou grupo) por senhas, segurança no uso do próprio SGBD como nas criações de novas contas;

• Fornecimento de múltiplas interfaces (visões): Diversos níveis de conhecimento entre os usuários, onde o BD deve oferecer vários tipos de acesso aos dados;

• Forçar restrições de integridade: armazenamento de vários tipos de dados (inteiro, real, lógico), relacionamentos entre os dados, obrigatoriedade ou não de informação do dado (nulo ou não nulo), unicidade do dado (chave primária), dificultar a ocorrência de erros;

• Sistema de Backup e Recovery: Capacidade de salvamento e recuperação dos dados;

• Facilidade e controle do BD no caso de falha do hardware ou do software chegando a fazer uma recuperação da situação anteriormente encontrada, evitando duplicidade e dados inconsistentes.

Page 27: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br 27

Informática

DATA MINING

Apesar de o termo data mining ter se tornado bastante popular nos últimos anos, existe ainda certa confusão quanto à sua definição.

Data mining (ou mineração de dados) é o processo de extrair informação válida, previamente desconhecida e de máxima abrangência a partir de grandes bases de dados, usando-as para efetuar decisões cruciais.

Data mining vai muito além da simples consulta a um banco de dados, no sentido de que permite aos usuários explorar e inferir informação útil a partir dos dados, descobrindo relacionamentos escondidos no banco de dados.

Pode ser considerada uma forma de descobrimento de conhecimento em bancos de dados (KDD - Knowledge Discovery in Databases).

Em geral, um processo de descoberta de conhecimento consiste em uma iteração das seguintes etapas:

• Preparação: os dados são preparados para as técnicas de data mining. Os dados são selecionados (quais os dados que são importantes), purificados (retirar inconsistências e incompletude dos dados) e pré-processados (reapresentá-los de uma maneira adequada para o data mining).

• Data Mining: é onde os dados preparados são processados, ou seja, é onde se faz a mineração dos dados propriamente dita. O principal objetivo desse passo é transformar os dados de uma maneira que permita a identificação mais fácil de informações importantes.

• Análise de Dados: o resultado do data mining é avaliado, visando determinar se algum conhecimento adicional foi descoberto, assim como definir a importância dos fatos gerados.

Um ambiente de apoio à tomada de decisões, integrando técnicas de data mining sobre um ambiente de data warehousing, possibilita um grande número de aplicações, que já vêm sendo implementadas em diversos segmentos de negócios, como manufatura, automação de pedido de remessas, varejo, gerenciamento de inventários, financeiro, análise de risco, transporte, gerenciamento de frotas, telecomunicação, análise de chamadas, saúde, análise de resultados, markenting, estabelecimento do perfil dos consumidores, seguros, detecção de fraude, dentre outros.

Basicamente, são usados três métodos para identificar padrões em dados:

• Modelos simples (consultas baseadas em SQL, raciocínio humano)

• Modelos intermediários (regressão, árvores de decisão, agrupamento)

Page 28: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br28

Figure 1 - Exemplo de arvore de decisão

• Modelos complexos (redes neurais, outra indução de regras)

Principais Tarefas

Em geral, as tarefas do data mining podem ser classificadas em duas categorias:

Descriptive data mining e predictive data mining. O primeiro descreve o conjunto de dados de uma maneira concisa e resumida e apresenta propriedades gerais interessantes dos dados; o segundo constrói um ou um conjunto de modelos, realiza inferências sobre o conjunto de dados disponíveis e tenta predizer o comportamento de novos conjuntos de dados.

Um sistema de data mining pode realizar pelo menos uma das seguintes tarefas:

Descrição de classes

Provê um resumo conciso e sucinto de uma coleção de dados e a distingue de outras. O resumo de uma coleção de dados é chamado de caracterização de classe; enquanto a comparação entre duas ou mais coleções de dados é chamada comparação ou discriminação de classe. A descrição de classe não só deveria cobrir suas propriedades de resumo tal como a contagem, somas, e cálculos de médias, mas também suas propriedades sobre a dispersão dos dados, tais como a variância, desvio padrão, quartis, etc.

Page 29: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

Informática – Bancos de Dados Relacional – Prof. Julio Alves

www.acasadoconcurseiro.com.br 29

Por exemplo, a descrição de classe pode ser usada para comparar as vendas européias e asiáticas de uma companhia, identificar os fatores importantes que discriminam as duas classes e apresentar um resumo conciso.

Associação

É a descoberta de relações de associação ou correlações entre um conjunto de itens. Eles são expressados frequentemente na forma de regras que mostram as condições atributo-valor que acontecem frequentemente juntas em um determinado conjunto de dados. Uma regra de associação da forma X —+ Y é interpretada como "tuplas (conjunto de valores de atributos) de base de dados que satisfazem X são prováveis que satisfaçam Y". Análise de associação é extensamente usada em "transaction data analysis for directed marketing", design de catálogo e outros processos de decisões comerciais.

Significativo esforço de pesquisa foi desenvolvido em análise de associações com a proposicão de algoritmos eficientes, incluindo ‘~ level-wise", mineração em múltiplos níveis, associações multidimensionais, mineração de associações numéricas, categóricas e de intervalos de dados, mineração baseada em restrições além de mineração de correlações como Elmasri & Navathe.

Classificação

Analisa um conjunto de dados de treinamento (i.e., um conjunto de objetos cuja classificação já é conhecida) e constrói um modelo para cada classe baseado nas características dos dados. Uma árvore de decisão ou um conjunto de regras de classificação é gerado por tal processo de classificação, que pode ser usado para entender melhor cada classe no banco de dados e para classificação de futuros dados. Por exemplo, alguém pode classificar doenças e ajudar a prever tipos de doenças baseados nos sintomas dos pacientes.

Houve muitos métodos de classificação desenvolvidos nos campos de aprendizagem de máquina, estatística, banco de dados, redes neurais, conjuntos rough sets", e outros. A classificação foi usada em segmentação de clientes, modelagem de negócios e análise de crédito.

Previsão

Esta função de mineração prediz os possíveis valores de alguns dados perdidos ou a distribuição de valores de certos atributos em um conjunto de objetos. Ela envolve a descoberta de um conjunto de atributos relevantes para o atributo de interesse (e.g., por algumas análise estatística) e prediz a distribuição do valor baseada no valor do conjunto de dados semelhantes ao(s) objeto(s) selecionado(s). Por exemplo, o salário potencial de um empregado pode ser predito baseado na distribuição do salário de empregados semelhantes na companhia. Usualmente, análise de regressão, modelo linear generalizado, análise de correlação e árvores de decisão são ferramentas úteis em predição de qualidade. Também são usados algoritmos genéticos e redes neurais com bastante sucesso.

Page 30: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br30

Agrupamento

análise de "clusters" ou de agrupamento consiste em identificar possíveis agrupamentos nos dados, onde um agrupamento é uma coleção de objetos que são "semelhantes" um ao outro. Diferentes medidas de similaridade, baseadas em funções de distância podem ser especificadas para diferentes contextos de aplicação. Um bom método de "cluster" assegura que a similaridade inter-cluster é baixa e a similaridade intra-cluster é alta. Por exemplo, pode-se agrupar as casas de uma área de acordo com sua categoria, área construída e localização geográfica.

Data mining têm enfocado suas pesquisas em métodos de "clustering" de alta qualidade para grandes bases de dados e armazém de dados (data warehouse).

Análise de série temporal - analisa um grande conjunto de dados de séries temporais para encontrar certas regularidades e características interessantes, incluindo a pesquisa de sequências ou subsequências semelhantes e descobrindo assim padrões sequenciais, periodicidades, tendências e divergências. Por exemplo , pode-se predizer a tendência dos valores acionários para uma companhia baseando-se em sua história acionária, situação empresarial, desempenho dos competidores e mercado atual.

Há outras tarefas do data mining, como análise de "outlier". A Identificação de novas tarefas para fazer melhor uso dos dados coletados é um tópico de pesquisa interessante.

Exemplos Aplicação

Wal- Mart

O mais divulgado é o da cadeia americana Wal-Mart, que identificou um hábito curioso dos consumidores. Ao procurar eventuais associações entre o volume de vendas e os dias da semana, o software de data mining apontou que, às Sextas-feiras, as vendas de cervejas cresciam na mesma proporção que as de fraldas. Apesar de parecer que as crianças bebiam cerveja, uma investigação mais profunda revelou que, ao comprar fraldas para seus bebês, os pais aproveitavam para abastecer o estoque de cerveja para o final de semana.

Bank of America

O Bank of America usou essas técnicas para selecionar entre seus milhões de clientes aqueles com menor risco de dar calote num empréstimo. Enviou cartas oferecendo linhas de crédito para os correntistas cujos filhos tivessem entre 18 e 21 anos e, portanto, precisassem de dinheiro para ajudar os filhos a comprar o próprio carro, uma casa ou arcar com os gastos da faculdade. Lucrou 30 milhões de dólares em 3 anos de utilização da técnica.

Operadoras de Cartão de Crédito

Combate a crimes de fraude utilizando dados sobre os hábitos de uso dos clientes. Quando um telefonema for feito e considerado pelo sistema como uma excessão, o programa faz uma chamada para confirmar se foi ou não uma tentativa de fraude.

Page 31: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br 31

Informática

DATA WAREHOUSE

Executivos tomadores de decisão (diretores, gerentes, analistas, etc) necessitam de ferramentas de apoio a tomada de decisão. É aí que entram os sistemas de suporte à decisão (Decision Support Systems - DSS), ferramentas que ofereçam consultas sob demanda, interfaces gráficas, etc.

Um data warehouse visa integrar os dados internos e externos de uma organização em uma estrutura unificada, a fim de permitir uma melhor utilização dos dados.

A partir de uma estrutura de DW obtida, a análise destes dados se dá através de sistemas como OLAP (On-Line Analytical Processing) e data mining.

Um data warehouse é uma coleção de dados orientada por assuntos, integrada, variante no tempo, que tem por objetivo dar suporte aos processos de tomada de decisão.

O data warehouse é um banco de dados contendo dados extraídos do ambiente de produção da empresa (OLTP), que foram selecionados, tendo sido otimizados para processamento de consulta e não para processamento de transações através de um processo de extração transformação e carga (ou ETL – Extract transform and Load).

De maneira geral, um data warehouse pode consolidar dados de outras fontes externas, incluindo informações provenientes de planilhas eletrônicas, documentos, dados da web, etc.

O objetivo de um data warehouse é fornecer uma imagem única da realidade do negócio. De uma forma geral, sistemas de data warehouse compreendem um conjunto de programas que extraem dados do ambiente de dados operacionais da empresa, um banco de dados que os mantém, e sistemas que fornecem estes dados aos seus usuários.

Page 32: Informática - Amazon Simple Storage Service · uma condição (teste). Sendo assim, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de instruções) seja

www.acasadoconcurseiro.com.br32

Sistemas de Data Warehouse revitalizam os sistemas da empresa, pois:

• Permitem que sistemas mais antigos continuem em operação;

• Consolidam dados inconsistentes dos sistemas mais antigos em conjuntos coerentes;

• Extraem benefícios de novas informações oriundas das operações correntes.

Como se vê, existem diferentes visões do que seria um data warehouse: uma arquitetura, um conjunto de dados semanticamente consistente com o objetivo de atender diferentes necessidades de acesso a dados e extração de relatórios, ou ainda, um processo em constante evolução, que utiliza dados de diversas fontes heterogêneas para dar suporte a consultas ad-hoc (sob demanda), relatórios analíticos e à tomada de decisão.

Propósitos de um Data Warehouse

Para entender o propósito do DW, analisaremos as seguintes questões:

“Nós possuímos montanhas de dados, no entanto, não conseguímos acessá-los.”

“É necessário facilitar o acesso às informações para os usuários de negócio.”

“Apenas mostre-me o que é importante.”

Uma das missões do data Warehouse é justamente consolidar os dados que são importantes para a tomada de decisão.

“Nós precisamos que as pessoas usem a informação para suportar uma tomada de decisão baseada em fatos.”

Evitar o “Achômetro”.

Data warehouse e data mart

Um data mart é uma subdivisão ou subconjunto de um data warehouse. Os data marts são como pequenas fatias de data warehouse, que armazenam subconjuntos de dados.

Normalmente o data mart é direcionado para uma linha de negócios ou equipe, sendo que a sua informação costuma pertencer a um único departamento.

Extraindo informações do Data Warehouse

Existem várias maneiras de recuperar informações de um data warehouse, as formas de extração mais comuns no mercado hoje são:

• Ferramentas de consulta e emissão de relatórios;

• EIS (Executive Information Systems);

• Ferramentas OLAP;

• Ferramentas Data mining.