Buscar

curso 60484 aula 15 v1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 95 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 95 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 95 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Livro Eletrônico
Aula 15
Passo Estratégico de Informática p/ Polícia Federal (Agente) -
Pós-Edital
Thiago Rodrigues Cavalcanti
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
Passo Estratégico de Informática ? PF Agente 
www.estrategiaconcursos.com.br 
 1 
94 
1 ? Introdução ................................................................................................................... 2 
2 ? Dados estruturados e não estruturados ....................................................................... 2 
3 ? Modelo Relacional ....................................................................................................... 4 
3.1 ʹ Restrições de Integridade ....................................................................................................... 10 
3.2 ʹ Tabelas, visões e índices ......................................................................................................... 11 
3.3 ʹ Álgebra relacional .................................................................................................................. 15 
3.4 ʹ Regras de Codd ....................................................................................................................... 21 
3.5 ʹ Normalização ......................................................................................................................... 23 
3.6 ʹ Mapeando o modelo ER em relacional .................................................................................. 28 
4 ? Noções de mineração de dados .................................................................................. 33 
4.1 ʹ Conceitos básicos: Mineração de Dados ................................................................................ 36 
4.2 ʹ Processo de mineração ........................................................................................................... 39 
4.3 ʹ Técnicas de pré-processamento ............................................................................................. 42 
4.4 ʹ Tarefas de mineração ............................................................................................................. 43 
4.5 ʹ Regras de associação ............................................................................................................. 43 
4.6 ʹ Classificação ........................................................................................................................... 45 
4.7 ʹ Agrupamento (Clustering) ...................................................................................................... 46 
4.8 ʹ Abordagem para outros problemas de mineração ................................................................ 47 
4.9 ʹ Conceitos Complementares .................................................................................................... 48 
5 ? Noções de Aprendizado de Máquina .......................................................................... 50 
5.1 ʹ Modelos de Aprendizado de máquina ................................................................................... 51 
5.2 ʹ Conceitos e Definições ............................................................................................................ 53 
5.3 ʹ Algoritmos ou técnicas de Aprendizado ................................................................................. 54 
6 ? Big Data: Definições e conceitos ................................................................................. 61 
6.1 ʹ Falácias sobre Big Data .......................................................................................................... 65 
6.2 ʹ Aplicações de Big Data ........................................................................................................... 67 
6.3 ʹ Classificação de Big Data .................................................................................................... 68 
6.4 ʹ Padrões atômicos e compostos de uma solução de Big Data ................................................ 70 
7 ? Questões Comentadas ............................................................................................... 75 
 
 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 2 
94 
1 ? INTRODUÇÃO 
Hoje vamos dar continuidade e concluir o assunto de Banco de Dados. Vou inserir novamente o 
conteúdo de Dados estruturados e não estruturados, visto na aula 12, que servirá com prelúdio da 
aula de hoje. 
Devido à complexidade dos assuntos, a aula acabou ficando extensa. Optei por deixar desta forma, 
para que você não deixe de estudar pontos importantes e que segundo análise das últimas provas, 
podem estar presentes no seu concurso. 
Caso haja alguma dúvida, não hesite em me perguntar no fórum. Estou à disposição para ajudá-lo a 
alcançar seu objetivo: passar no concurso e ser nomeado. 
 
2 ? DADOS ESTRUTURADOS E NÃO ESTRUTURADOS 
Quando resolvemos classificar os dados, uma das taxonomias possíveis é aquela que divide os dados 
de acordo com a sua estruturação. Neste contexto segregamos os dados em estruturados, 
semiestruturados e não estruturados. Vamos tentar definir cada um deles: 
Dados estruturados são aqueles quem possuem a mesma estrutura de representação 
rígida e previamente projetada, ou sejam, existe um esquema que estabelece algumas 
características dos dados que serão armazenados. Esses dados são organizados e gravado 
em um banco de dados. 
Perceba que os dados estruturados são definidos por um esquema ou um formato padrão para cada 
um dos atributos. Podemos, portanto, observar que existe uma mesma estrutura de representação 
para cada grupo de item de dados (relação) que é rígida e definida previamente por meio de um 
esquema. 
Vamos tentar abstrair um pouco essa definição. Imagine uma tabela com apenas duas colunas nome 
e telefone. O nome deve possuir no máximo 20 caracteres e o telefone deve ser um valor numérico 
de 9 algarismos. Veja que para incluir um par, nome/telefone, nesta tabela você deve respeitar o 
tipo e tamanho dos campos. 
Outro ponto interessante é que a tabela tem apenas dois atributos ou colunas, essa característica 
foi definida pelo esquema. O esquema é semelhante a uma forma de bolo. Não temos como inserir 
outra informação, como endereço se não reformularmos o esquema para aceitar esse novo atributo. 
Enfim, perceba que temos uma rigidez quando aos valores que podem ser manipulados quando 
trabalhamos com dados estruturados. 
Para flexibilizar essa situação foram criados os dados semiestruturados. 
Dados semiestruturados. Essa segunda categoria de dados geralmente não é mantida em 
um banco de dados (embora a maioria dos bancos de dados relacionais admita o tipo 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 3 
94 
XML, seguindo a recomendação do padrão SQL). Os dados semiestruturados apresentam 
uma organização bastante heterogênea, o que pode dificultar as consultas a esses dados. 
Os dados não são estritamente tipados1, mas também não são completamente desestruturados. O 
que então faz com que ele seja classificado desta forma? 
Os dados semiestruturados são dados onde o esquema de representação está presente de forma 
explícita ou implícita, podendo ser, inclusive, auto descritivo. Uma análise do dado dever ser feita 
para que a sua estrutura seja identificada e extraída. Como exemplos de dados semiestruturados 
podemos citar: XML ? eXtensible Markup Language, RDF ? Resource Description Framework, OWL ? 
Web Ontology Language. A figura abaixo apresenta a diferença entre um texto plano e um conjunto 
de dados semiestruturado. 
 
Como características destes dados podemos listar: 
1. Definição à posteriori ? os esquemas são definidos após a existência dos dados por 
meio da investigação de suas estruturas particulares. 
2. Estrutura irregular ? não existe um esquemapadrão para os dados, as coleções de 
dados são definidas de maneiras diferentes, podendo conter informações incompletas. 
3. Estrutura implícita ? muitas vezes uma estrutura implícita. 
4. Estrutura parcial ? apenas parte dos dados disponíveis podem ter uma estrutura. 
Agora podemos passar para uma análise dos dados não estruturados. 
Dados não estruturados. De forma simples são inclusos aqui os dados que não possuem 
uma estrutura definida. Podem ser listados como exemplo documentos, textos, imagens 
 
1 Um tipo de dados em uma linguagem de programação ou em um banco de dados são os domínios básicos que 
podem ser atribuídos a cada uma das colunas de uma tabela. Os tipos de dados mais utilizados são os numéricos e 
os de caracteres. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 4 
94 
e vídeos. Esses, geralmente, não possuem descrição para suas estruturas, nem 
implicitamente. A grande maioria dos dados disponíveis na Web são classificados dentro 
destes formatos. 
Tendo em vista a grande quantidade de dados (volume), uma imensa variedade de dados e a 
necessidade de processamento cada vez mais rápida (velocidade) surge o conceito de Big Data. 
Após rever o assunto de Dados estruturados e não estruturados, vamos continuar nosso estudo 
sobre Banco de Dados, com o Modelo Relacional. 
 
3 ? MODELO RELACIONAL 
Em 1970, Edgar Frank Codd foi um matemático britânico desenvolveu o modelo 
de banco de dados relacional quando era pesquisador da IBM em San José ? 
Califórnia. É interessante que, inicialmente, a IBM não quis implementar as 
ideias de Codd. Eles tinham uma linha produtos, em especial o IMS/DB, e não 
queriam perder faturamento. O IMS/DB era um SGBD que não utilizava o 
modelo relacional como fundamento teórico. A IBM tinha um grande volume de 
receitas advindas deste produto e não queria perder espaço neste mercado, 
mesmo que fosse para ela mesma. 
Ainda assim, Codd insistiu na utilização do modelo, conversou com um grupo de clientes e 
apresentou as vantagens e peculiaridades da sua solução. A IBM acabou implementando o System 
R. Deste projeto surgiu a linguagem SQL (SEQUEL). Falaremos um pouco sobre SQL, mais adiante, 
por enquanto, apresentaremos os conceitos do modelo relacional. Vamos juntos? 
O modelo relacional é um modelo de dado representativo (ou de implementação). Como um 
modelo, ele procura organizar os dados em um banco de dados. Para isso, ele define um conjunto 
de conceitos para representação dos dados. O modelo tem uma base formal sólida que está 
estruturada na teoria dos conjuntos e na lógica de primeira ordem. 
C. J. DATE apresenta o modelo relacional com as seguintes características fundamentais, que o 
distingue dos demais modelos: 
1. Estrutura de dados tabular. 
2. Regras de integridade. 
3. Operadores relacionais. 
4. Utilização do SQL (Structured Query Language2). 
Veja que a primeira característica definida acima trata da estrutura de dados tabular. A base deste 
modelo é o conceito de relação. Um banco de dados seria, portanto, um conjunto de relações. Cada 
 
2 SQL é a linguagem de programação padrão utilizada em bancos de dados. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 5 
94 
relação pode ser vista como uma tabela. Assim, os SGBD relacionais devem representam os dados 
sob a forma de tabelas bidimensionais organizadas em linhas e colunas. 
Cada linha dessas tabelas é conhecida como uma tupla, ou uma coleção de valores relacionados. 
Cada coluna é vista como um atributo, que possui um determinado conjunto de valores possíveis: o 
domínio. Um domínio é um conjunto de valores atômicos. A figura a seguir resume os conceitos 
vistos por meio da representação da tabela Alunos. 
 
Perceba que a tabela é uma relação dentro do modelo de dados. Cada uma das colunas (Nome, 
Número e Turma), representam um atributo que deve ser associado a cada uma da tuplas desta 
tabela. Cada linha descreve um aluno desta tabela, a primeira linha apresenta os dados de Francisco 
com seus respectivos número e turma. 
Outra constatação que podemos fazer a partir da figura acima é a presença de um conjunto de 
valores possíveis para cada uma das colunas. Não está explícito. Não sabemos a definição formal da 
tabela. Contudo, podemos observar que as tuplas desta relação apresentam apenas valores 
numérico associados a coluna Número e caracteres associados a coluna Nome. É importante 
perceber que cada coluna possui um tipo de dados. 
Um tipo de dados define os valores que um dado pode assumir e as operações que podem 
ser efetuadas sobre o mesmo. Tipos podem ser, por exemplo: inteiros, reais, caracteres, etc. 
Quando especificamos um domínio, geralmente definimos um tipo de dado do qual são retirados os 
valores possíveis para o atributo. Além do tipo de dado, um domínio pode ser descrito por meio de 
um nome, um formato e outras informações adicionais a respeito dos dados. Apenas para 
exemplificar um atributo salário pode ser definido como um decimal com 10 dígitos e seu valor ser 
definido em reais (R$). 
Outra característica relevante associada ao domínio é o fato dele ser atômico. Isso faz parte da 
definição do modelo relacional. Não se esqueça disso! Usaremos esse conceito quando formos 
estudar normalização mais adiante. Outro ponto importante, está relacionado à integridade dos 
dados. O modelo apresenta um conjunto de restrições básicas para dados e relacionamentos, 
conhecidas como restrições de integridade. 
Ok! Temos as nossas relações! Conseguimos definir, pelo menos de forma gráfica um conjunto de 
tabelas com seus atributos. Se quisermos, podemos povoar essas tabelas com dados. Agora, se eu 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 6 
94 
quiser associar ou operar uma tabela com outras, ou ainda, fazer uma consulta que me retorne 
apenas as tuplas ou linhas que possuam uma certa restrição, o que devo fazer? 
Neste momento chegamos a terceira característica definida por Date, que vimos na página anterior. 
Os operadores relacionais são usados para manipular as informações pertencentes a cada uma das 
relações do nosso modelo. Esse conjunto de operações é conhecido como álgebra relacional. Ela vai 
nos auxiliar a trabalhar com os dados em nossos esquemas relacionais. 
Você deve estar lembrado que o esquema é considerado o projeto do banco de dados. A forma de 
bolo sobre a qual nossas instancias são armazenadas. Assim, imagine uma tabela aluno com 100 
alunos. O esquema vai definir os atributos necessários para cada linha da relação. Já as linhas são 
consideradas instâncias da tabela. Lembrando que as linhas podem ser denominadas tuplas da 
tabela. 
Dentro de qualquer relação temos as seguintes propriedades: 
1. Cada tupla contém exatamente um valor (do tipo apropriado) para cada atributo. 
2. Atributos não são ordenados da esquerda para a direita. Essa propriedade acontece, 
pois, uma tupla é definida em termos de conjuntos matemáticos, que não possuem 
ordenação dos seus elementos. 
3. Tuplas não são ordenadas de cima para baixo. 
4. Não existem tuplas duplicadas. 
Formalmente, um esquema relacional R, pode ser definido por R (A1, A2, ..., An) é composto por um 
nome de relação R e uma lista de atributos A1, A2, ..., An. Cada atributo Ai é o nome de um papel 
desempenhado por algum domínio D no esquema de relação R. Veja que aqui estamos falando do 
esquema, modelo, desenho ou intenção de uma relação. Vejamos um exemplo: Aluno (Nome, 
Endereço, Turma, Responsável). 
Veja que no exemplo acima aluno seria o nome da relação. E Nome, Endereço, Tuma e Responsável 
seriam atributos da mesma. Se você não conseguiu observar de forma clara a definição acima, vamos 
tentarapresentar a mesma em forma de figura. 
Veja que eu mantive o nome das colunas e da relação com os termos usados na definição. Os valores 
em cada coluna são definidos de acordo com um domínio específico, veja a coluna An pode receber 
os valores Aprovado ou Reprovado, por exemplo. 
R A1 A2 ... AN 
 Agente-PF 9.2 Aprovado 
 Perito-PF 8.2 Reprovado 
 Escrivão-PF 8.9 Aprovado 
 Papiloscopista 9.5 Aprovado 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 7 
94 
Vejamos agora outras definições presentes no modelo. Percebam que são definições simples. O 
entendimento destes conceitos facilita a leitura do conteúdo quando estudamos e principalmente 
na hora da prova! 
O grau (ou aridade) de uma relação é o número de atributos ‘n ? desse esquema de relação. Em outras 
palavras, a aridade de uma relação é o número ‘n ? de elementos que compõem as n-uplas 
pertencentes à relação. Esse número n pode variar de 0 até n, onde n é um número natural. Uma 
relação de grau cinco teria, logicamente, cinco atributos. Se pensarmos em uma tabela, teríamos 
cinco colunas. Considere o exemplo de uma relação esquema de grau 7, que descreve estudantes 
universitários: 
ESTUDANTE (Nome, Matricula, Telefone, Endereço, Celular, Idade, MPA) 
Assim, podemos afirmar que uma tupla de grau um é unária, uma tupla de grau dois é binária, de 
grau três é ternária e assim por diante. Desta forma, uma tupla ĚĞ�ŐƌĂƵ� ‘Ŷ ?�Ġ�ĐŽŶƐŝĚĞƌĂĚĂ�Ŷ-ária. E 
uma tupla de grau zero? Será que ela existe? Sim! Um tupla de grau zero (ou seja, sem atributos é 
considerada nulária. 
Existe outra característica, que é o estado ou a extensão de uma relação, representado formalmente 
por um r (minúsculo) ou r (R). Esse ‘r ? é um conjunto de ‘m ? tuplas, onde r = {t1, t2 ?� Q ?�ƚm}. Cada uma 
das tuplas ti é uma lista ordenada de n valores ti = <v1, v2, ..., vn> em que cada valor vi, 1<=i<=n, é um 
elemento de dom(Ai) ou um valor especial NULL. Lembre-ƐĞ�ƋƵĞ� ‘�i ‘�Ġ�Ƶŵ�ĂƚƌŝďƵƚŽ�ĚĂ�ƌĞůĂĕĆŽ ? 
Mais uma vez apresentamos uma definição um pouco matemática do conceito. E, mais uma vez, 
podemos, ao visualizar essa definição em uma tabela, verificarmos a simplicidade visual do que está 
sendo descrito acima. 
R A1 A2 A3 A4 
T1 v11 v12 v13 v14 
T2 v21 v22 v23 v24 
T3 v31 v32 v33 v34 
Neste caso, podemos definir r = {t1, t2, t3} e cada uma das tuplas são representadas pelos valores de 
cada um dos seus atributos <v1, v2, v3, v4>. Perceba a existência de uma ordenação entre os valores 
dos atributos de uma quando visualizados em uma tabela. Tal fato é refletido quando você criar uma 
tabela em SQL, geralmente a ordem que você define para os atributos no comando de criação é a 
mesma que os campos são criados fisicamente na base. 
Antes que você comece a reclamar do nível teórico elevado da aula, vamos fazer duas questões do 
CESPE sobre o assunto, para ajudar a compreender como ele pode ser cobrado em prova. 
(CESPE / TCM-BA ? 2018) Considerando os conceitos de banco de dados relacionais, assinale 
a opção correta a respeito das propriedades de uma tupla. 
a) A tupla tem o mesmo significado e as mesmas propriedades de uma tabela. 
b) Os componentes de uma tupla são ordenados da esquerda para a direita. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 8 
94 
c) Cada tupla contém exatamente um valor para cada um de seus atributos. 
d) Um subconjunto de uma tupla não é considerado uma tupla. 
e) Uma tupla nunca é vazia, seu grau pode variar de 1 até n. 
Comentários: 
Vimos informações que as tuplas são linhas de uma tabela. Elas, quando consideramos a 
referência teórica e matemática do modelo relacional não são ordenadas e não se repetem. 
Vamos agora analisar cada uma das alternativas acima. 
A) A tupla é a linha da tabela. Representa uma instância ou um valor armazenado. Pense na 
tabela aluno, cada aluno armazenado é uma tupla da tabela. Contudo, uma tabela pode ter 
atributos que não são específicos da tupla como a quantidade máxima de registros. Logo, não 
podemos definir o todo pela parte, nem podemos dizer que a forma do bolo é um bolo. Sendo 
assim, a alternativa está incorreta. 
B) Os as tuplas não são ordenadas de cima para baixo, nem seus atributos ou componentes são 
ordenados da esquerda para a direita. 
C) Pela definição de modelo relacional do Codd os atributos de uma relação devem ter valores 
atômicos. Logo, cada coluna deve ter um valor dentro do seu respectivo domínio. Este pode ou 
não aceitar valores nulos. Sendo assim, essa afirmação está certa. 
D) Um subconjunto de uma tupla é outra tupla, inclusive se lembrarmos da propriedade de 
fechamento das operações de álgebra relacional, podemos perceber que o resultado de uma 
projeção vai reduzir as tuplas de uma tabela aos atributos definidos na operação. 
E) Uma tupla de uma tabela pode ser vazia (confesso que descobri isso com essa questão), ela 
é conhecida como empty tuple ou nullary tuple. Para preencher valores desconhecidos usamos 
o valor nulo que uma notação para vazio. Além disso ela representa um conjunto de atributos, 
a quantidade de atributos de uma tupla é denominada grau e pode variar de 0 até n. Logo, 
temos mais uma alternativa incorreta. 
Gabarito: alternativa C. 
 
(CESPE / STJ ? 2015) Acerca de modelagem relacional e pontos de função, julgue o item a 
seguir. 
O modelo relacional consiste em uma coleção ilimitada de tipos escalares e de um operador 
de atribuição relacional que atribui valores às variáveis de relações que integram os 
componentes desse modelo. 
Comentários: 
OK! O texto em questão parece Grego. Mas não é! Você já precisa apenas de um tradutor para 
resolver a questão. Quando falamos em tipos escalares, estamos nos referindo a atributos que 
tem valore atômicos e indivisíveis. Numa classificação normal um escalar se contrapõe a uma 
matriz. Em uma matriz temos vários valores associados a uma instância. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 9 
94 
Agora já temos uma coleção de tipos escalares que estabelecem os domínios dos atributos que 
formam uma tabela ou uma relação. Certo!? Assim, construímos uma tabela! Vamos precisar, 
então, inserir novos valores nesta tabela. Neste contexto, precisamos de um operador que 
permita a inserção de novas linhas. Esse operador de atribuição vai permitir que essa 
associação seja feita. 
Vamos relembrar da nossa videoaula. Nela apresentamos um conjunto de componentes 
definidos pelo Date para banco de dados relacionais. Segundo ele o modelo relacional consiste 
em cinco componentes: 
1) Uma coleção ilimitada de tipos escalares, incluindo em particular o tipo booleano ou valor 
verdade. (TIPOS DE DADOS) 
2) Um gerador de tipo de relação e uma interpretação pretendida para esses tipos de relações. 
(A EXITÊNCIA DAS TABELAS) 
3) Recursos para definição de RelVars desses tipos de relações gerados. (DDL ? DEFINIÇÃO ? 
UMA LINGUAGEM PARA CONSTRUIR AS TABELAS) 
4) Um operador de atribuição relacional para atribuição de valores de relações a essas RelVars. 
(DML ? MANIPULÇÃO/INSERSÃO DE VALORES NAS TABELAS) 
5) Uma coleção ilimitada de operadores relacionais genéricos para derivar valores de relações 
a partir de outros valores de relações. (OPERAÇÕES) 
Gabarito: Certo. 
Agora que entendemos todos os conceitos iniciais vamos tratar de outras características das 
relações. A primeira delas seria a ordenação de tuplas em uma relação. Vejam que estamos falando 
das linhas. Imagine uma consulta ao banco de dados que retorna um conjunto de tuplas, será que 
existe algum critério predefinido para a ordenação deste resultado? 
A ideia é que, por ser definida como um conjunto de tuplas dentro de cada relação, as tuplas não 
são ordenadas. Em outras palavras, a ordenação da tupla não faz parte da definiçãoda relação. Se 
você pensar em SQL, é basicamente estabelecer o fato de que se você fizer uma consulta e não 
especificar uma ordenação para o resultado na cláusula order by o SGBD pode retornar os valores 
ou tuplas em qualquer ordem. 
E a ordenação dos valores dentro de uma tupla? Essa pode ser importante quando visualizamos a 
organização de uma tabela em um papel ou em formato digital, pois cada valor representa um 
significado específico dentro de um domínio correspondentes a coluna. Contudo, quando pensamos 
em tuplas não podemos falar em primeiro ou segundo atributo. A ideia é que os atributos sejam 
sempre referenciados pelo nome e não pela posição. Isso ajuda a reduzir erros de programação. 
Ou seja, ao inserir uma tupla em uma relação é importante que os valores estejam associados aos 
seus respectivos atributos e essa ligação é feita pelo nome. Para exemplificar, pense em uma tabela, 
os valores associados a cada coluna têm um significado, sendo assim, a inserção de linhas deve ser 
feita respeitando o contexto de cada coluna. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 10 
94 
3.1 ? RESTRIÇÕES DE INTEGRIDADE 
Na primeira parte da aula definimos a estrutura tabular presente no modelo relacional. Agora vamos 
falar das restrições de integridade. Essas restrições visam manter a consistência dos dados dentro 
do seu banco. As regras de integridade podem ser vistas como um conjunto de parâmetros ou regras 
do negócio, previamente estabelecidos e criados no banco de dados, aos quais os dados são 
submetidos, para garantir que um processo de atualização não resulte em dados inconsistentes. 
Uma das características mais fortes dos bancos de dados relacionais, quando comparado com seus 
antecessores (em Rede e Hierárquico), está em oferecer mecanismos para a criação de regras de 
integridade diretamente no banco de dados. As regras de integridade de dados podem ser 
implementadas nos SGBDR de forma declarativa ou procedural. 
A integridade declarativa é implementada através de parâmetros opcionais da linguagem de 
definição de dados (DDL). Os tipos mais comuns de integridade declarativa são: chave primária (PK), 
domínio e integridade referencial. 
A integridade procedural se apresenta sob a forma de um programa, cuja lógica é escrita pelo 
programador, na linguagem procedural nativa do SGBD. Esse tipo de integridade supre as 
necessidades não cobertas pelos parâmetros de integridade declarativa e pode ser criada através de 
triggers (gatilhos), stored procedures (procedimentos armazenados) ou assertions (afirmações). 
Triggers, stored procedures e assertions são comandos que podem ser usados para fazer ajustes na 
base de dados. Um trigger, por exemplo, é uma estrutura conhecida como EVENTO-CONDIÇÃO-
AÇÃO. Imagine que uma modificação no banco de dados dispara um evento. Por exemplo, uma 
atualização na tabela funcionário com a inclusão de 10 novos auditores. 
Esse evento vai levar a execução de um código ou de um programa. O programa vai verificar 
(condição) se os auditores foram de fato aprovados no concurso público e em seguida incluir os 
dados dos mesmos na folha de pagamento e no plano de saúde do órgão em questão. 
As bancas focam suas questões sobre esse assunto nos seguintes tipos de restrições: 
Integridade de Domínio (dom(A)) ? restringe os valores válidos que podem ser associados a um 
determinado atributo. É a mais elementar forma de restrição de integridade. Ajudam, não somente 
a garantir os valores inseridos no banco de dados, mas também a testar consultas para garantir que 
as comparações feitas fazem sentido. Você deve se lembrar que cada tipo de dado tem um conjunto 
de operações que pode ser executada sobre os mesmos. Imagine a operações de soma e subtração 
nos tipos de dados numéricos. Na linguagem SQL é implementada pelo comando CHECK. 
Integridade de Chave (Unicidade) ? Garante a unicidade do valor da chave primária em cada uma 
das tuplas de uma relação. Implementado pela palavra-chave UNIQUE. 
Integridade de Vazio (def if(x!=null?x==null)) ? Basicamente verifica se um valor de um determinado 
atributo pode ou não ter o valor nulo associado a suas instâncias. Podemos definir uma coluna como 
NULL ou NOT NULL em SQL. 
Integridade de Entidade (PK != null) ? Garante que a chave primária de uma entidade não receba o 
valor nulo. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 11 
94 
Integridade Referencial (FK == PK (Chave Candidata) || FK == null) - Garante que o valor que aparece 
em uma relação para um dado conjunto de atributos também apareça para um conjunto de 
atributos em outra relação. Em SQL é implementada por meio de uma referência da chave 
estrangeira (FK) de uma relação à chave primária ou atributo UNIQUE da outra tabela. Esse valor de 
chave estrangeira, sempre que existir, deve estar associado a um valor da chave primária da outra 
relação. Caso contrário pode assumir apenas o valor nulo. Veja a figura abaixo para entender melhor 
esse conceito. 
 
Observe que o uso de chaves estrangeira vai permitir a criação de relacionamentos no modelo 
reacional. 
Integridade Semântica (assertions ou triggers) ? Uma asserção é um predicado que expressa uma 
condição que desejamos que seja sempre satisfeita no banco de dados. Um gatilho (triggers) é um 
comando que é executado pelo sistema automaticamente, em consequência de uma modificação 
no banco de dados. Toda vez que um evento acontece, uma condição (caso exista) é verificada e 
uma ação é disparada. 
Ao lado da explicação de cada uma das regras de integridade existe, entre parênteses, uma palavra, 
fórmula ou expressão. Elas não existem em nenhuma fonte oficial de estudos. São estruturas criadas 
por mim para facilitar a memorização das restrições de integridade. Quando formos estudar SQL, 
falaremos um pouco mais sobre esse assunto com uma visão mais prática dos conceitos 
apresentados. 
3.2 ? TABELAS, VISÕES E ÍNDICES 
3.2.1 ? Tabelas 
Vamos agora conversar um pouco sobre tabelas, são várias as questões da que cobram o conteúdo 
deste assunto. A tabela é o local onde todos os dados são armazenados. Para criar uma tabela basta 
seguir a sintaxe do CREATE TABLE apresentada abaixo. Basicamente, você de descrever as colunas 
que vão compor sua tabela, juntamente com os tipos e as restrições de integridade associados. 
Vejam um exemplo de tabela na figura abaixo. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 12 
94 
 
 
Observe que optamos por dar um exemplo do Oracle. Aproveitamos para apresentar o comando 
DESC, que, seguido pelo nome da tabela, fornece uma descrição das colunas com seu tipo. O 
comando também informa se a coluna aceita ou não valores nulos. 
Sobre o comando CREATE, ele é usado para especificar uma nova relação, dando-lhe um nome e 
especificando seus atributos e restrições iniciais. Vejam que os atributos são definidos primeiro e, 
a cada atributo, é dado um nome, um tipo para especificar o domínio de seus valores e alguma 
restrição de atributo. 
As restrições de chave, de integridade de entidade e de integridade referencial podem ser 
especificas no mesmo comando após os atributos serem declarados ou poderão ser adicionadas 
depois usando o comando ALTER TABLE. 
Outro comando importante é o comando DROP <TABLE> que remove todas as informações de uma 
relação do banco de dados. Em outras palavras, excluí o objeto e os dados armazenados. É possível 
usar o modificador CASCADE para deletar também tabelas que sejam filhas da tabela removida ou 
pelo menos ajustar a integridade referencial. 
Na alteração de tabelas feita pelo comando ALTER TABLE podemos adicionar e excluir atributos de 
uma relação. É possível definir um valor default para os novos atributos ou eles vão receber valores 
nulos para as tuplas jáexistentes. Vejam abaixo um resumo da sintaxe do alter table. 
 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 13 
94 
 
Vamos então visualizar um exemplo de uma tabela já carregadas com dados e importada para o 
Excel. Vejam a figura: 
 
Para entendermos melhor como escolher os tipos de dados das nossas colunas passaremos a seguir 
a analisar os principais tipos de dados de SQL e suas peculiaridades. SQL inclui sete tipos de tipos de 
dados pré-definidos: string (conjunto de caracteres), numéricos, binário, datetime, interval, boolean 
e XML. 
Na linguagem SQL padrão esses tipos são divididos em tamanho fixo e variável. Todas as cadeias de 
caracteres em SQL podem ser de comprimento fixo ou variável. Você tem três tipos principais de 
cadeias de caracteres: 1. Cadeias de caracteres de tamanho fixo (CHARACTER ou CHAR), 2. Cadeias 
de caracteres de tamanho variável (CHARACTER VARYING ou VARCHAR) e 3. Cadeia de caracteres 
de para armazenar grandes objetos (CHARACTER LARGE OBJECT ou CLOB). 
Vamos agora tratar dos tipos de dados numéricos. Eles são divididos em duas grandes categorias: 
números exatos (exact numbers) e números aproximados (approximate). 
Os números exatos podem ser números inteiros (lápis, pessoas ou planetas) ou ter casas decimais 
(preços, pesos ou percentuais). Os números podem ser positivos e negativos. Eles podem ter 
precisão e escala. O que seria isso? A precisão (p) determina o número total máximo de dígitos 
decimais que podem ser armazenados (tanto a esquerda quanto a direita do ponto decimal). 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 14 
94 
Os números de ponto flutuantes ou aproximados são números que não podem ser representados 
com precisão absoluta. Outros tipos de dados não são relevantes para o nosso estudo. É importante, 
para o concurso da Polícia Federal, que você saiba que as tabelas são descritas por meio de colunas, 
restrições e tipos de dados. 
3.2.2 ? Visões 
Outro objeto SQL que podemos criar dentro dos nossos bancos de dados são as VIEWs. A view é um 
comando SQL que é armazenado no banco de dados e possui um nome associada a ela. Eles têm 
algumas funções básicas. A primeira é facilitar a visualização dos dados dispersos em diversas tabelas 
tornando-os mais natural ou intuitivo ao entendimento humano. 
Outra função importante para a view está relacionada a segurança dos dados. É possível restringir o 
acesso aos campos e às colunas de uma tabela por meio de uma view. Desta forma o usuário teria 
visão apenas a parte dos dados ou informações. Esse grupo de informações deve ser compatível com 
as funções e necessidades de acesso do usuário. 
Outra opção para o uso de view é sumarizar dados de diferentes tabelas gerando relatórios. Vejamos 
abaixo dois exemplos do uso de VIEWs. Lembrando que ela pode ser criada sobre uma ou múltiplas 
tabelas. Observe que o comando basicamente incluí a sintaxe CREATE VIEW nome AS antes de uma 
consulta ao banco de dados. 
 
Para visualizarmos os dados de uma visão, basta escrevermos um comando SELECT sobre ela, vejam 
o exemplo sobre a view web_designers criada acima. 
 
A view é considerada uma tabela virtual porque ela só existe durante o período que você está 
utilizando a mesma. Todas as operações que são feitas sobre a tabela podem ser feitas em uma 
VIEW, mas a tabela é virtual, e na teoria não deve ser armazenada no banco de dados. 
3.2.3 ? Índices 
O primeiro conceito que devemos ter em mente do assunto é a definição de índices. Um índice é 
um mecanismo utilizado para melhorar a velocidade de acesso aos dados. Ele é composto por uma 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 15 
94 
chave que é um atributo ou conjunto de atributos usado para procurar registros em um arquivo. Ele 
também possui um ponteiro que consiste em um identificador para um bloco de disco, além do 
deslocamento dentro do bloco para encontrar o registro. 
Um arquivo de índice consiste em um conjunto de registros com o formato apresentado na figura 
abaixo. Esse registro se dá o nome de registro de índice ou entrada de índice. 
 
Como uma técnica para criar estruturas de dados auxiliares, os índices agilizam a busca e a 
recuperação de registros, para isso eles envolvem armazenamento de dados auxiliares. Esses dados 
são armazenados nos arquivos de índices. Alguns tipos de acesso podem se beneficiar dos índices, 
por exemplo, a localização de registro com um valor especificado e a localização de registros em um 
intervalo especificado de valores. Veja a figura abaixo para entender um pouco mais sobre índices. 
 
É necessário saber se esse benefício de fato traz um ganho de desempenho ao sistema de banco de 
dados. Avaliar os índices para medir seus efeitos na performance é um passo importante. Vários 
SGBDs possuem utilitários que ajudam a quantificar os efeitos pretendidos com a criação de índices 
sobre tabelas. Esse valor é baseado em alguns fatores, entre eles, o tempo de acesso, inserção e 
deleção; o overhead de espaço em disco e os métodos de acesso suportados. 
3.3 ? ÁLGEBRA RELACIONAL 
Falaremos agora sobre a álgebra relacional, um assunto bastante explorado pelas bancas de 
concurso. Esse tema possui algumas características matemáticas que são baseadas principalmente 
na teoria de conjuntos. O conjunto básico de operações utilizadas no modelo relacional é conhecido 
como álgebra relacional. Navathe apresenta três motivos para considerarmos essas operações 
importantes: 
x Fornece alicerce formal para o modelo relacional. 
x É usado como base para implementação e otimização de consultas. 
x Alguns dos seus conceitos são incorporados na linguagem SQL padrão. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 16 
94 
Historicamente, a álgebra e o cálculo relacional foram desenvolvidos antes da linguagem SQL. O 
conjunto básico de operações para o modelo relacional é a álgebra relacional. Essas operações 
permitem que um usuário especifique as solicitações de recuperação básicas como expressões da 
álgebra relacional. O resultado de uma recuperação ou consulta é uma nova relação. 
Embora a álgebra defina um conjunto de operações para o modelo relacional, o cálculo relacional 
oferece uma linguagem declarativa de nível mais alto para especificar consultas relacionais. A 
álgebra relacional normalmente é considerada uma parte do modelo de dados relacional. Suas 
operações podem ser divididas em dois grupos. Um grupo inclui conjunto de operações da teoria 
de conjuntos da matemática; e outro grupo desenvolvidas especificamente para bancos de dados 
relacionais: as operações relacionais. 
Vamos apresentar cada uma das operações, e em seguida, apresentaremos as taxonomias ou formas 
de classificação das operações. Tenham em mente que todas as operações são executadas sobre 
uma ou duas tabelas e o retorno delas é sempre outra relação. Essa característica é conhecida como 
fechamento. 
3.3.1 ? Seleção 
O objetivo dessa operação, que recebe como entrada uma única tabela ou relação, é selecionar um 
conjunto de tuplas que satisfaçam um predicado (uma condição lógica) nos valores dos atributos. 
Em outras palavras vamos extrair de uma relação um conjunto de linhas que possuem algumas 
restrições, por exemplo, funcionário que o salário seja maior que 10 mil reais. Vamos procurar 
entender melhor o que a operação faz exatamente com outro exemplo, vejam a tabela abaixo: 
 
Queremos executar uma operação se seleção sobre está tabela. Vamos então fazer uma consulta de 
quais grupos de países ou parte do mundo apresentam mais de 10% da distribuição de petróleo. 
Olhando para a tabela já poderíamos trazer os valores América Latina e Oriente Médio. Mas existe 
uma notação específica definida pela álgebra relacionalpara fazer essa consulta. Essa notação pode 
ser vista abaixo: 
 
��ůĞƚƌĂ�ŐƌĞŐĂ�ʍ� ?ƐŝŐŵĂ ?�ƌĞƉƌĞƐĞŶƚĂ�Ă operação de seleção, que é feita sobre a relação R, restringindo 
as linhas de acordo com as restrições descritas pelo predicado. Sobre esse predicado é preciso tecer 
alguns comentários. Primeiramente é perfeitamente possível que ele seja uma composição de 
restrições sobre diferentes colunas da tabela. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 17 
94 
Cada restrição é conhecida como termo. Os termos podem ser ligados por conectivos ר (e), ש (ou), 
¬ (não). Cada termo pode ser composto por um <atributo> operador <atributo> ou <atributo> 
ŽƉĞƌĂĚŽƌ�AMĐŽŶƐƚĂŶƚĞAN ?�WŽƌ�Ĩŝŵ�Ă�ůŝƐƚĂ�ĚĞ�ŽƉĞƌĂĚŽƌĞƐ�Ġ�ĨŽƌŵĂĚĂ�ƉŽƌ�A? ?�A? ?�AN ?�A? ?�AM�ŽƵ�A? ? Percebam que 
você pode compor diferentes predicados com essas estruturas. 
Vamos agora, que conhecemos a sintaxe e a consulta sugerida, escrever a mesma na notação 
correta. (Para facilitar nossa escrita, vamos chama as colunas de REGIAO, 
DISTRIBUICAODEPETROLEO, DISTRIBICAODEGAS e a relação de PETROLEOREGIAO): 
ʍ<DISTRIBUICAODEPETROLEO >= 10>(PETROLEOREGIAO) 
 Observe na consulta acima que o predicado < DISTRIBUICAODEPETROLEO >= 10> é definido sobre um 
atributo da tabela PETROLEOREGIAO. 
3.3.2 ? Projeção 
Agora vamos passar para a projeção. Essa operação, também, recebe como entrada uma relação. 
Contudo, suas restrições são feitas sobre as colunas da tabela. Essa operação deixa algumas colunas 
de fora do resultado, reduzindo, portanto, a quantidade de dados a serem analisados. Usando o 
mesmo exemplo anterior vamos supor que queremos as informações apenas da distribuição de 
petróleo no mundo e das regiões. Bastaria recortar a tabela excluindo a coluna que informa a 
distribuição de gás. 
Da mesma maneira que a operação anterior, apresentaremos agora a representação formal da 
projeção: 
 
A ůĞƚƌĂ�ŐƌĞŐĂ�ʋ (pi) representa a operação. A1, A2, ..., Ak são a lista de atributos da relação R que 
queremos trazer como resultado. Para fazermos a consulta utilizando a nomenclatura correta 
podemos escrevê-la da seguinte forma: 
ʋ< REGIAO, DISTRIBUICAODEPETROLEO >(PETROLEOREGIAO) 
Ainda sobre a essa operação consideramos relevante saber que os resultados duplicados são 
removidos. 
3.3.3 ? Rename (renomeação) 
Para entender a definição da função rename, podemos começar entendendo a sua funcionalidade. 
A primeira seria unificar em um único conjunto duas listas diferentes. Imaginem duas tabelas, uma 
com a lista de escolas e outra das universidades. Se quiséssemos juntar os nomes das instituições de 
ensino poderíamos fazer uma união (falaremos sobre a operação nas próximas linhas) dos nomes 
das escolas com os nomes das universidades. Contudo, se precisarmos usar esse resultado mais 
adiante, qual o nome da nova relação e dos atributos? Temos, portanto, que renomear o resultset. 
O segundo uso do rename seria para ƌĞĚƵnjŝƌ�ĂŵďŝŐƵŝĚĂĚĞ�Ğŵ� ?ƐĞůĨũŽŝŶ´s ?. Quando fazemos um join 
da tabela com ela mesma e queremos comparar os atributos do resultado, temos que renomear as 
tabelas para que essa comparação possa ser feita. Se você se lembrar de SQL, a linguagem 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 18 
94 
implementa alias sobre as tabelas, e uma das funções desse alias é justamente resolver essa 
ambiguidade. Em suma, o alias é uma implementação do conceito de rename. 
A representação formal da operação de rename é feita da pela letra grega ʌ (rho) e é aplicada sobre 
uma relação. Veja abaixo: 
ʌx<A1, A2, ... ,An >(E) 
O x representa o novo nome dado para a relação (E) e A1, A2, ..., An representam os novos nomes 
dados para os atributos da relação. A1 se refere ao primeiro atributo da relação, A2 ao segundo e 
assim sucessivamente. Suponha uma relação STUDENT (NAME, PHONE). Podemos usar o comando 
de rename da seguinte forma: 
ʌestudante<nome, telefone>(STUDENT) 
Você poderia ainda atribuir o resultado acima a outra relação usando o comando de assignment 
(Å). Assim poderíamos atribuir o resultado anterior a uma variável, por exemplo: 
temp Å ʌestudante<nome, telefone>(STUDENT) 
As próximas quatro operações são conhecidas como operações de conjuntos. Vamos analisar cada 
uma delas. 
3.3.4 ? União 
A operação é caracterizada por R ׫ S, onde R e S são duas relações com a mesma quantidade de 
atributos e cujos atributos operam sobre o mesmo domínio. O resultado contém as tuplas que estão 
em R, S ou ambas, matematicamente pode ser vista assim: 
 
3.3.5 ? Intersecção 
A intersecção representada por R ŀ S, traz como resultado a Relação que contém as tuplas que estão 
em ambas R e S. 
 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 19 
94 
3.3.6 ? Diferença 
R - S: Relação que contém as tuplas que estão em R e que não estão em S. Veja que, ao contrário das 
operações de união e intersecção listadas acima a diferença não é comutativa, ou seja, ܴ െ ܵ ് ܵ െܴǤ� 
 
3.3.7 ? Produto Cartesiano 
Permite combinar informações de duas relações fazendo uma junção de todas as linhas a primeira 
com todas as linhas da segunda. O produto cartesiano entre duas tabelas ou relações gera uma nova 
relação com a quantidade de tuplas igual ao produto da quantidade de tuplas de cada uma das 
relações. A nova relação possui todos os atributos que compõe cada uma das tabelas que fazem 
parte da operação da seguinte forma: 
 
3.3.8 ? Junção 
A junção é uma conexão entre duas tabelas na qual elas são mescladas de acordo com um campo 
em comum. Essa junção pode ser considerada um produto cartesiano seguido por uma seleção. O 
símbolo ڇ representa uma junção. Ao executar uma junção ela deve satisfazer a um predicado ɽ e 
existir pelo menos um campo nas duas tabelas que operem sobre o mesmo domínio. Esse campo é 
usado para decidir quais linhas da primeira tabela devem se relacionar com cada uma das linhas da 
85692484404 - Edinalva Aparecida Aquino Sá
==10b92a==
1
 
 
 
 
 
 
 
 
 20 
94 
segunda tabela. Geralmente exige-se que os valores dos atributos sejam iguais. Mas existem 
variações da junção conforme veremos abaixo. 
Theta-Join: O primeiro tipo de junção é definido sobre alguma comparação entre os atributos de 
junção. Essa comparação é conhecida como predicado. Caso esse predicado seja uma igualdade 
entre valores essa junção é conhecida como Equijoin. Vejamos um exemplo: 
 
Natural join (ڇ) P�:ƵŶĕĆŽ�ŶĂ�ƋƵĂů�ɽ�Ġ�ƵŵĂ�ŝŐƵĂůĚĂĚĞ�ƉƌĞĚĞĨŝŶŝĚĂ�ĞŶƚƌĞ�ƚŽĚŽƐ�ŽƐ�ĂƚƌŝďƵƚŽƐ�ĚĞ�ŵĞƐŵŽ�
nome presentes em duas relações R1 e R2 (atributos de junção). Estes atributos só aparecem uma 
vez no resultado. 
Junções externas ou outer joins. Junção na qual as tuplas de uma ou ambas as relações que não são 
combinadas mesmo assim são preservadas no resultado, possui basicamente três variações. Logo 
em seguida apresentamos um exemplo. 
Left outer Join: tuplas da relação à esquerda são preservadas. 
Notação: 
Right outer join: tuplas da relação à direita são preservadas 
Notação: 
Full outer join: tuplas da relação à direita e à esquerda são preservadas 
Notação: 
 
85692484404 - Edinalva Aparecida Aquino Sá
0
 
 
 
 
 
 
 
 
 21 
94 
Antijoin: Representada pelo seguinte símbolo: ٲ. A operação retorna os valores da relação que não 
satisfazem a condição de junção. Vejam o exemplo abaixo: 
 
3.3.9 ? Divisão 
�� ŽƉĞƌĂĕĆŽ� ĚĞ� ĚŝǀŝƐĆŽ� Ġ� ƵƐĂĚĂ� ŶĂƐ� ĐŽŶƐƵůƚĂƐ� ŶĂƐ� ƋƵĂŝƐ� ƐĞ� ĞŵƉƌĞŐĂ� Ă� ĨƌĂƐĞ P� “ƉĂƌĂ� ƚŽĚŽƐ ? ?�Seu 
resultado será composto basicamente pelos elementos da primeira tabela que se relacionem com 
todos os elementos da segunda tabela. Vejam o exemplo abaixo: 
 
Sobre a taxonomia é importante saber que temos um conjunto de operações conhecidas como 
fundamentais que são a seleção, projeção,união, interseção, diferença, produto cartesiano e 
rename. Essas operações possuem esse nome, pois a partir delas é possível obter o resultado das 
demais operações. 
Outra classificação importante é a classificação das operações em binárias e unárias (ou primárias). 
Esse parâmetro está baseado na quantidade de relações que são utilizadas nas operações. As 
operações de projeção, seleção e rename são unárias. As operações de união, interseção, subtração, 
produto cartesiano, junção e divisão são binárias. 
3.4 ? REGRAS DE CODD 
Para que um banco de dados seja considerado relacional ele deve seguir as 13 regras definidas por 
E.F.Cood, apresentamos abaixo as referências a cada uma das regras. É muito comum encontrar 
publicações falando das 12 regras. O que acontece é que são 13 regras, numeradas de 0 até 12. 
85692484404 - Edinalva Aparecida Aquino Sá
b
 
 
 
 
 
 
 
 
 22 
94 
0. Todas as regras se baseiam na noção de que para um banco de dados ser qualificado como 
relacional, ele dever utilizar recursos exclusivamente relacionais para seu gerenciamento. 
1. Informação: Todas as informações em um banco de dados são representadas de forma explícita 
no nível lógico e são estruturadas exatamente, em apenas uma forma, por valores em tabelas. 
2. Acesso Garantido: Todos os dados precisam ser acessíveis. Cada valor atômico (datum) em um 
banco de dados relacional possui a garantia de ser logicamente acessado pela combinação de nome 
de tabela, do valor da chave primária e do nome da coluna. 
3. Tratamento sistemático de valores nulos: Valores nulos devem ser suportados de forma 
sistemática, independente do tipo de dado, para representar informações inexistentes e 
informações inaplicáveis. É também implícito que tais representações devem ser manipuladas pelo 
SGBD de maneira sistemática. 
4. Catálogo on-line dinâmico: A descrição ou metadados do banco de dados é representada no nível 
lógico da mesma forma que os dados ordinários, permitindo que os usuários autorizados utilizem a 
mesma linguagem relacional aplicada aos dados regulares. É possível usar a linguagem SQL para 
conhecer as descrições das tabelas do banco, por exemplo. 
5. Sublinguagem ampla dos dados: Um sistema relacional pode suportar várias linguagens e várias 
formas de recuperação de informações. Entretanto, deve haver pelo menos uma linguagem, com 
uma sintaxe bem definida e expressa por um conjunto de caracteres, que suporte de forma 
compreensiva todos os seguintes itens: definição de dados, definição de "views", manipulação de 
dados (interativa e embutida em programas), restrições de integridade, autorizações/segurança de 
acesso, e transações (begin, commit e rollback). 
6. Atualização de visualizações: Todas as "views" ou visões dos dados que são teoricamente 
atualizáveis devem também ser atualizáveis pelo sistema. 
7. Inserção, atualização e exclusão de alto nível: A capacidade de manipular um conjunto de dados 
(em uma relação) através de um simples comando deve-se estender às operações de inclusão, 
alteração ou exclusão de dados. 
8. Independência física de dados: Programas de aplicação e recursos ad hoc permanecem 
logicamente inalterados quando ocorrem mudanças no método de acesso ou na forma de 
armazenamento físico. 
9. Independência lógica de dados: Mudanças nas relações e nas views provocam pouco ou nenhum 
impacto nas aplicações. Ou seja, as alterações nas tabelas que preservam os valores originais não 
devem afetar os aplicativos e recursos ad hoc. 
10. Independência de integridade: As aplicações não são afetadas quando ocorrem mudanças nas 
regras de restrições de integridade. Deve ser possível que todas as regras de integridade sejam 
definidas na linguagem relacional e armazenadas no catálogo de sistema, não no nível de aplicação. 
11. Independência de distribuição: As aplicações não são logicamente afetadas quando ocorrem 
mudanças geográficas dos dados. Ou seja, os usuários finais não devem perceber o fato do BD ser 
distribuído ou local. 
85692484404 - Edinalva Aparecida Aquino Sá
9
 
 
 
 
 
 
 
 
 23 
94 
12. Não transposição das regras: Se um sistema possui uma linguagem de baixo nível, essa 
linguagem não pode ser usada para subverter as regras de integridades e restrições definidas no 
nível mais alto. 
3.5 ? NORMALIZAÇÃO 
O Processo de normalização, como foi inicialmente proposto por Codd (1972), ele sujeita um 
esquema de relação a uma série de testes para certifica-se de que ele satisfaça certa forma normal. 
De uma forma mais simples o processo observa o modelo de dados e faz algumas checagens, casos 
as regras não sejam verificadas é necessário agir sobre o modelo para organizar melhor os dados. 
Definição: A normalização de dados é uma técnica de decomposição utilizada no projeto 
de banco de dados com objetivo de prover um armazenamento consistente, evitando 
redundância de dados e anomalias de atualização. 
Inicialmente, Codd propôs três formas normais: 1ª, 2ª e 3ª. Todas baseadas nas dependências 
funcionais entre os atributos de uma relação. Uma nova forma normal foi proposta por Boyce-Codd, 
que é mais forte do que 3ª FN. Veja que estamos falando de um conceito novo, logo precisamos 
explicá-lo, vamos então aproveitar para apresentar outros conceitos que nos ajudam a entender 
melhor o assunto. 
Assim, para entender as formas normais é preciso antes de qualquer coisa, entender alguns 
conceitos. Para facilitar o seu entendimento vamos defini-lo e explicá-los em uma linguagem simples 
e objetiva. 
Chave, superchave, chave primária e chave candidata 
Vamos começar falando sobre chave. Existem alguns conceitos relacionados a chave. O primeiro 
deles é o de superchave. Uma definição forma afirma que uma superchave de um esquema de 
relação R = {A1, A2, ..., An} é um conjunto de atributos S C R (S está contido em R) que contenha a 
propriedade na qual não haverá duas tuplas t1 e t2, em qualquer estado válido da relação r de R, 
cuja t1[S] = t2[S]. Em outras palavras uma superchave é um conjunto de atributos que tem a 
característica de restringir o conjunto de tuplas de uma relação a apenas uma linha. 
Quando olhamos para um conjunto de atributos em uma tabela que não se repete em nenhum das 
linhas da tabela podemos considera-los uma superchave. 
Já entendemos o conceito de superchave. Essa superchave pode ser considerada apenas uma chave. 
Neste caso, a chave é defendida como uma superchave mínima (vou chamar ela de K), onde 
qualquer remoção de atributo de K fará com que K deixe de ser superchave da relação. Se um 
esquema tiver mais de uma chave, cada uma delas é chamada de chave candidata. Entre as chaves 
candidatas uma delas é escolhida para ser a chave da relação e é denominada de chave primária. As 
demais são renegadas e são denominadas chaves secundárias. 
Entender o conceito de chave é o primeiro passo para o entendimento das formas normais. De posse 
deste conhecimento, é possível definir o conceito de atributo primário, que nada mais é do que um 
85692484404 - Edinalva Aparecida Aquino Sá
2
 
 
 
 
 
 
 
 
 24 
94 
atributo membro (que faz parte) de alguma chave candidata da relação (R). Por sua vez, de forma 
bem intuitiva, um atributo não primário é todo aquele que não for um atributo primário! 
Vejamos então uma questão do CESPE sobre este assunto. 
(CESPE / TJDFT ? 2015) Julgue os itens seguintes a respeito de banco de dados. 
[61] Em uma tabela de um banco de dados relacional, se uma restrição de chave primária for 
definida como composta de mais de uma coluna, os seus valores poderão ser duplicados em 
uma coluna; no entanto, cada combinação de valores de todas as colunas na definição da 
restrição de chave primária deve ser exclusiva. 
Comentários: Questão interessante, pois, nos permite fazer um rápido comentário sobrechaves. Uma chave identifica unicamente uma linha de uma relação. Toda relação pode ter 
vários conjuntos de atributos que podem ser escolhidos como chave primária. Cada uma 
dessas opções que se caracterizam por ser uma superchave mínima, ou seja, não é possível 
retirar nenhum atributo sem que o conjunto perca a propriedade de ser chave da relação, é 
denominada chave candidata. A chave escolhida para ser a chave da relação é denominada 
chave primária. Ela pode ser composta por um ou mais atributos. 
A questão pede para analisarmos uma característica de chaves compostas por mais de um 
atributo. Percebam que a unicidade dos valores deve considerar o conjunto dos atributos e não 
um atributo individualmente. Sendo assim a alternativa encontra-se correta. 
Gabarito: Certo. 
Outro conceito que temos que conhecer é o de dependências funcional (DF). Já sabemos que ele 
faz parte da definição de algumas formas normais. Mas, ainda não sabemos exatamente o que ele 
significa. 
Dependência funcional é, basicamente, uma restrição entre dois conjuntos de atributos do banco de 
dados. Eu sempre peço para você pensar no CPF e Nome. Quando você me informa um CPF eu posso 
te devolver um nome. Assim dissemos que Nome é funcionalmente dependente de CPF. 
Formalmente, uma dependência funcional, denotada por X Æ Y entre dois conjuntos de atributos X 
e Y, que são subconjunto de R, especifica uma restrição nas possíveis tuplas que formam um estado 
da relação r de R. A restrição é que, para quaisquer duas tuplas t1 e t2 em r que tenha t1[X] = t2[X], 
elas também têm de ter t1[Y] = t2[Y]. 
Mais uma vez podemos simplificar: a questão aqui é perceber que se você escolher um determinado 
valor para o atributo X da relação (sabendo que X Æ Y) é possível saber o valor do atributo Y. Na 
definição formal é dito que se duas tuplas tiverem o mesmo valor para X, então elas também terão 
o mesmo valor de Y. É importante saber também que quando X Æ Y (X determina Y), X é chamando 
de determinante e Y de determinado. 
Uma dependência funcional pode ser considerada trivial, neste caso se X Æ Y e X contém (ᐞ) Y. Para 
entender isso basta supor um conjunto de atributos (A, B, C, D, E) e o fato de A, B, C Æ C faz desta 
DF uma dependência trivial. Por outro lado, temos a possibilidade da DF ser não trivial se X Æ Y e X 
não contém Y. Usando os mesmos atributos acima, uma DF A, B Æ D pode ser considerada um 
exemplo de DF não trivial. 
85692484404 - Edinalva Aparecida Aquino Sá
a
 
 
 
 
 
 
 
 
 25 
94 
Com esses conceitos já é possível definir as três primeiras formas normais, bem como a forma 
normal de Boyce-Codd. 
Primeira forma normal (1FN) 
Essa forma normal é considerada uma parte da definição de relação no modelo relacional básico. 
Sua definição prevê que todos os atributos de uma relação devem ter seus valores definidos sobre 
domínios atômicos ou indivisíveis. Em outras palavras, os campos de uma tabela não devem ser 
compostos ou multivalorados. Vejam abaixo uma figura que demonstra a normalização de uma 
tabela que não está na 1FN para duas relações. 
 
Vamos aproveitar para expor algumas definições de diversos autores sobre a primeira forma normal: 
Primeira forma normal 
x Uma relação R existe na primeira forma normal (1FN) se, e somente se, todos os 
domínios subjacentes contiverem apenas valores atômicos. 
x No modelo relacional, um domínio é atômico se os elementos do domínio são 
considerados unidades indivisíveis. Um esquema de relação R está na primeira forma 
normal se todos os atributos de R são atômicos. 
x A primeira forma normal afirma que o domínio de um atributo deve incluir apenas 
valores atômicos (simples e indivisíveis) e que o valor de qualquer atributo em uma 
tupla deve ser um único valor do domínio desse atributo. 
x A primeira forma normal evita as chamadas relações aninhadas, essa relações contém 
vários atributos em uma única coluna e não são permitidas no modelo relacional. 
Segunda forma normal (2FN) 
A definição mais rigorosa descreve que um esquema de relação R está na 2FN se todo atributo não 
primário A em R tem dependência funcional total de uma chave candidata. Podemos dizer também 
que não existe dependência parcial. De uma forma mais simples, a ideia aqui é que cada atributo 
não chave seja definido por todos os atributos pertencentes à chave primária ou a outra chave 
candidata da relação. Veja abaixo uma relação que não se adequa a segunda forma normal, sendo, 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 26 
94 
por meio do processo de normalização, transformada em duas relações que estão de acordo com a 
definição apresentada. 
 
Um fato interessante sobre a segunda forma normal é que para termos problema com uma relação 
precisamos que uma chave candidata seja composta, ou seja, possuir mais de um atributo, e que 
um desses atributos determine outro (atributo não primário) desta relação. Nas provas de concursos 
o que geralmente acontece é termos uma chave primária composta e um atributo pertencente a 
essa chave que determina um atributo não primário da tabela. Desta forma, é possível aceitar 
algumas das definições abaixo: 
Segunda forma normal 
x Um esquema de relação R está na 2FN se cada atributos não primário A em R for total 
e funcionalmente dependente da chave primária de R. 
x Uma tabela está na segunda forma normal (2FN) se estiver na primeira forma normal 
(1FN), e seus atributos não chaves forem totalmente dependentes da chave primária. 
Terceira forma normal (3FN) 
A normalização feita a partir da regra definida pela terceira forma normal leva a relação para um 
estado específico. Neste, a relação tem que estar na segunda forma normal e ainda todo atributo 
não primário da relação não é transitivamente dependente de uma chave da relação. 
Uma relação está na Terceira Forma Normal (3NF) se ela está na 2FN e nenhum atributo não chave 
(não primário) é transitivamente dependente de uma chave candidata. Enfim, na 3FN não se aceita 
dependência transitiva. O Navathe descreve uma definição mais geral da terceira forma normal que 
diz basicamente o seguinte: 
Um esquema de relação R está na terceira forma normal (3FN) sempre que uma 
dependência funcional não trivial X Æ A for determinada em R, qualquer 
(a) X é superchave de R; ou 
(b) A é atributo primário de R; 
Segundo o próprio autor, violar a condição (a) significa que X não é um super conjunto de nenhuma 
chave de R; consequentemente, X pode ser não primário ou pode ser um dado subconjunto de uma 
chave de R. O autor fala também que a violação de (b) significa que A é um atributo não primário. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 27 
94 
Enfim, são condições para a terceira forma normal (1) ter dependência funcional total para todas as 
chaves de R e (2) não ser transitivamente dependente de nenhuma chave de R. 
 
Se você achou essa definição de dependência transitiva muito complexa e não conseguiu fixar nada, 
deixa eu tentar explicar de outra forma. Primeiro você precisa ter em mente que para existir a 
transitividade temos que ter algumas premissas. Um atributo chave (primário), por exemplo, CPF 
determina um outro atributo (não primário), por exemplo, telefoneResidencial; que por sua vez 
determina outro atributo (não primário), por exemplo, Endereco. Vejamos a tabela abaixo: 
CPF Nome telResidencial Endereco 
001 Thiago 61 555-1255 SQSW 302 BL A 
002 João 61 555-1255 SQSW 302 BL A 
003 Pedro 61 555-1533 SQSW 301 BL D 
004 Mateus 61 555-1533 SQSW 301 BL D 
005 Paulo 81 555-9299 Av. Portugal 
Veja que se você me passar um número de CPF e eu devolvo um telefone residencial. Da mesma 
forma, se você me der um número de telefone eu devolvo um endereço único. Observe que, alguns 
telefones aparecem maisde uma vez na coluna, contudo, eles determinam o mesmo endereço, ou, 
em outras palavras, eles têm o mesmo endereço associado. É justamente essa replicação que 
desejamos evitar na terceira forma normal. 
Agora, voltando aos conceitos mais formais, você deve lembrar que um atributo primário faz parte 
de alguma chave candidata da sua relação. E para que exista necessidade de normalizar utilizando a 
terceira forma normal temos que ter 3 atributos, vamos supor A, B e C, de forma que A seja primário 
e B e C não primários. Além disso, temos que ter uma dependência transitiva onde A Æ B e BÆ C. 
Forma normal de Boyce-Codd (FNBC) 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 28 
94 
Uma coisa interessante é que ela foi proposta como uma forma mais simples que 3FN, porém mais 
rígida. Devido ao fato de a 3FN não tratar satisfatoriamente casos onde uma relação tem mais de 
uma chave candidata, e quando estas chaves são compostas e possuem atributos em comum. 
Se uma relação está na FNBC, também está na 3FN. Sua definição diz o seguinte: uma relação está 
na FNBC se todo determinante é chave candidata. Abaixo segue uma figura que demonstra uma 
normalização de uma relação para a FNBC. 
 
Veja na figura que temos duas chaves candidatas (Propriedade_num) e (Nome_cidade, Num_lote). 
Temos ainda uma dependência funcional onde Area determina o Nome_cidade. Neste caso, temos 
que fazer a separação proposta na figura acima. Veja que Area Æ Nome_cidade não fere a terceira 
forma normal pois Nome_cidade é um atributo primário. 
3.6 ? MAPEANDO O MODELO ER EM RELACIONAL 
Quando estudamos os conceitos introdutórios de banco de dados sempre falamos do modelo 
conceitual entidade-relacionamento (ER) e do modelo lógico relacional. Explicamos que durante um 
projeto de banco de dados a evolução natural leva você a construir os dois modelos a partir dos 
requisitos do cliente. 
Legal! Então você começou pelo minimundo, juntou os requisitos e construiu seu modelo ER! Agora, 
se você tinha dificuldade de passar esse modelo para o modelo relacional, seus problemas 
acabaram! Nas próximas linhas vamos explicar o passo a passo da transformação do seu diagrama 
ER em tabelas. 
O livro do Navathe sugere um algoritmo que nos ajuda no processo de transformar um esquema ER 
e um esquema relacional. Vamos utilizar o esquema abaixo para ilustrar o passo-a-passo deste 
mapeamento. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 29 
94 
 
Passo 01 
O mapeamento começa com as entidades regulares do modelo ER. Para casa tipo de entidade forte 
 ‘E ? presente no diagrama, criamos uma relação ‘R ? que incluí todos os atributos simples da entidade 
E. Escolha os atributos chaves da entidade para ser chave primária da relação. Se a chave da entidade 
for composta, o mesmo conjunto de atributos que formam a chave de E vão fazer parte da chave 
primária de R. 
Vejamos no exemplo temos as entidades fortes EMPLOYEE, DEPARTAMENT e PROJECT serão 
transformados em relações. Os atributos SSN, DNUMBER e PNUMBER serão as chaves primárias das 
respectivas tabelas. Assim temos: 
 
Passo 02 
A segunda etapa se concentra em mapear as entidades fracas. Para cada entidade fraca W no 
modelo ER com uma entidade pai ou proprietária E, você deve criar uma relação R e incluir todos os 
atributos simples (ou os componentes simples de atributos compostos) de W como atributos de R. 
É necessário ainda incluir como chave estrangeira os atributos que fazem parte da chave primária 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 30 
94 
da entidade proprietária E. Assim a chave primária será formada pela combinação da chave primária 
da entidade pai mais a chave parcial da entidade fraca, caso exista. 
Vamos mais uma vez para o nosso diagrama ER. A entidade fraca DEPENDENT deve dar origem a 
uma relação. Essa relação terá os atributos da entidade, além da chave estrangeira que vem da 
entidade pai. Vejam, então, que o Ssn fará parte da relação. Desta forma podemos construir a 
relação dependente conforme descrito abaixo: 
 
Passo 03 
Vamos agora começar a mapear os relacionamentos binários 1:1 entre as entidades. Para cada 
relacionamento binário 1:1 R no esquema ER, identificamos as relações que correspondem as 
entidades S e T que participam do relacionamento R. A partir deste momento temos três ações 
possíveis. 
A primeira seria usar chave estrangeira para efetivar o relacionamento. Neste caso você escolhe uma 
das chaves primárias de S ou de T. Vamos supor que escolhemos a chave de S. Você vai usar a chave 
primária de S e incluir ela como chave estrangeira da relação T. 
A melhor opção é escolher a entidade que tenha participação total no relacionamento. Em outras 
palavras, você deve escolher a entidade que para cada instância existente da entidade ela tenha 
uma instância no relacionamento e incluir a chave primária da outra entidade nela. Vejam que neste 
caso evitamos o uso valores nulos. 
Um exemplo desta opção é colocar na relação DEPARTAMENT a chave do funcionário que gerencia 
(MANAGES) o departamento. Vejam que todo departamento deve ter um funcionário como gerente. 
Agora nossa tabela de DEPARTAMENT aparece com os novos atributos: o id do gerente e a data de 
início da gerência. 
 
A segunda opção seria fazer um merge ou fusão das relações. Vejam que se temos um 
relacionamento 1:1 podemos combinar os atributos das duas relações e do relacionamento em uma 
única relação. Essa opção é adequada quando a participação das duas entidades no relacionamento 
é total. 
A terceira opção seria por cross-reference ou criação de uma relação para o relacionamento. Essa 
alternativa basicamente cria uma nova relação com a chave primária das duas relações participantes 
para prover o relacionamento entre elas. Conhecida como tabela de ligação. 
Passo 04 
Neste momento vamos nos preocupar com os relacionamentos binários 1:N. Para cada 
relacionamento binário 1:N, vamos identificar a relação S que representa a participação da entidade 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 31 
94 
no lado N do relacionamento. Em seguida, devemos incluir a chave estrangeira da relação T em S. 
Os atributos da relação 1:N também devem aparecer na relação S. 
Vejamos um exemplo, os relacionamentos WORKS_FOR, CONTROLS e SUPERVISION no diagrama ER 
acima. Para WORKS_FOR vamos incluir o número do departamento como chave estrangeira na 
relação EMPLOYEE, vamos chama-lo de DNO. 
Da mesma forma vamos incluir SUPER_SSN para implementar o relacionamento SUPERVION e o 
número do departamento na tabela de projeto para implementar o relacionamento CONTROLS. 
Vejam como ficaram as relações EMPLOYEE e PROJECT com essas mudanças. 
 
 
Passo 05 
O próximo mapeamento deve tomar conta dos relacionamentos M:N. Para cada relacionamento 
M:N criar uma nova relação para representar o relacionamento. Inclua como chaves estrangeiras da 
nova relação as chaves primárias das entidades participantes. Inclua ainda os atributos simples do 
relacionamento na nova tabela. 
Observe o relacionamento WORKS_ON no diagrama ER. Ele é mapeado pela criação da entidade 
WORKS_ON no esquema relacional. A chave primária é formada pelas chaves estrangeiras de projeto 
e empregado, renomeadas respectivamente para PNO e ESSN, respectivamente. O atributo HOURS 
é representado na relação. 
 
Passo 06 
 Vamos agora fazer o mapeamento dos atributos multivalorados. Para cada atributo multivalorado 
A, crie uma tabela R. Essa relação R vai incluir qualquer atributo pertencente ao conjunto A, além da 
chave primária da entidade K que tem A como atributo multivalorado sendo chave estrangeira em 
R. A chave primária da relação é uma combinação de A e K. 
No nosso modelotemos o exemplo de DEPT_LOCATIONS que deve ser criado. O atributo DLOCATION 
representa um atributo multivalorado de departamento, que tem como chave primária DNUMBER. 
A relação DEPT_LOCATIONS fica com a seguinte configuração: 
 
Antes de passar para o passo 07, vamos apresentar o esquema relacional completo derivado do 
diagrama ER apresentado acima. As setas indicam a existência de uma chave estrangeira que garante 
a integridade referencial. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 32 
94 
 
Modelo relacional 
Passo 07 
A última etapa é o mapeamento de relacionamentos N-ários. Devemos criar uma nova relação que 
inclua as chaves primárias de todas as entidades participantes do relacionamento quanto n>2. 
Adicione também os atributos simples. Observe o diagrama abaixo o resultado do mapeamento do 
relacionamento SUPPLY em uma relação. 
Em alguns casos uma nova etapa é incluída. Quando? Quando usamos o conceito de herança e 
precisamos organizar os tipos e subtipos. 
 
Digrama ER de um relacionamento ternário 
 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 33 
94 
Modelo relacional derivado de um relacionamento ternário. 
 
Etapas do Mapeamento de ER em relacional 
1. Mapeamento das entidades regulares 
2. Mapeamento das entidades fracas 
3. Mapeamento dos relacionamentos binários 1:1 
4. Mapeamento dos relacionamentos binários 1:N 
5. Mapeamento dos relacionamentos binários N:N 
6. Mapeamento dos atributos multivalorados 
7. Mapeamento dos N-ários (ternário, quaternário, ...) 
8. Mapeamento da herança e especialização 
 
4 ? NOÇÕES DE MINERAÇÃO DE DADOS 
�džŝƐƚĞ�ŐĞƌĂůŵĞŶƚĞ�ŝŶĨŽƌŵĂĕĆŽ� “ĞƐĐŽŶĚŝĚĂ ?�ŶŽƐ�ĚĂĚŽƐ�ƋƵĞ�ŶĆŽ�
são tão evidentes no momento da leitura. Um analista humano 
pode levar semanas para descobrir essa informação útil. A 
maioria dos dados de fato nunca é analisada. Com o 
crescimento da capacidade de processamento e 
armazenamento surgem perguntas sobre como identificar 
pĂĚƌƁĞƐ� ? “y ?�ĂĐŽŶƚĞĐĞ�ƐĞ ? ? ? ?, exceções (isto é diferente de... por 
causa de...), tendências (ao longo do ƚĞŵƉŽ ?� “z ?� ĚĞǀĞ�
acontecer...) e cŽƌƌĞůĂĕƁĞƐ� ?ƐĞ� “D ?�ĂĐŽŶƚĞĐĞ ?� “E ?�ƚĂŵďĠŵ�ĚĞǀĞ�
acontecer). 
A mineração de dados trata da solução de problemas, 
analisando dados já presentes em bancos de dados. Suponha um problema de lealdade inconstante 
dos clientes em um mercado altamente competitivo. Um banco de dados de clientes, juntamente 
com os perfis dos clientes, contém a chave para esse problema. Os padrões de comportamento dos 
antigos clientes podem ser analisados para identificar as características das pessoas com 
probabilidade de mudar de produto e aquelas que provavelmente permanecerão fiéis a sua marca. 
Uma vez que essas características sejam encontradas, elas podem ser postas em prática para 
identificar os clientes atuais que provavelmente abandonarão o navio. Este grupo pode ser alvo de 
um tratamento especial, tratamento muito caro para aplicar à base de clientes como um todo. As 
mesmas técnicas podem ser usadas para identificar clientes que possam ser atraídos por outro 
serviço que a empresa oferece ou para direcioná-los para ofertas especiais. Na economia altamente 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 34 
94 
competitiva, centrada no cliente e orientada a serviços de hoje, os dados são a matéria-prima que 
alimenta o crescimento dos negócios. 
A mineração de dados é definida como o processo de descoberta de padrões nos dados. O processo 
deve ser automático ou (mais comumente) semiautomático. Os padrões descobertos devem ser 
significativos, pois levam a alguma vantagem - por exemplo, uma vantagem econômica. Os dados 
estão invariavelmente presentes em quantidades substanciais. E como os padrões são expressos? 
Padrões úteis nos permitem fazer previsões não triviais sobre novos dados. 
Há dois extremos para a expressão de um padrão: uma caixa-preta cujas entranhas são 
efetivamente incompreensíveis e uma caixa transparente cuja construção revela a estrutura do 
padrão. Ambos, estamos assumindo, fazem boas previsões. A diferença é se os padrões que são 
extraídos são ou não representados em termos de uma estrutura que pode ser examinada, 
fundamentada e usada para informar decisões futuras. Tais padrões nós chamamos de estruturais 
porque eles capturam a estrutura de decisão de uma maneira explícita. Em outras palavras, eles 
ajudam a explicar algo sobre os dados. 
Nesta aula vamos tratar de tarefas e técnicas que fazem parte deste universo que tenta entender e 
capturar padrões sobre uma quantidade, relativamente, grande de dados. Muitas das técnicas que 
abordamos se desenvolveram em um campo conhecido como aprendizado de máquina. Vamos 
aproveitar essa introdução ao assunto para contextualizar o termo dentro do assunto. 
Aprendizado de máquina 
O que é aprender, afinal? O que é aprendizado de máquina? Estas são questões filosóficas, e não 
nos interessamos muito por filosofia nessa aula; nossa ênfase está foca na sua prova de concurso. 
No entanto, vale a pena passar alguns momentos tratando sobre questões fundamentais, apenas 
para ver o quão complicado elas são, antes de arregaçar as mangas e olhar para a aprendizagem 
ĂƵƚŽŵĄƚŝĐĂ�ŶĂ�ƉƌĄƚŝĐĂ ?�EŽƐƐŽ�ĚŝĐŝŽŶĄƌŝŽ�ĚĞĨŝŶĞ� “ĂƉƌĞŶĚĞƌ ?�como: 
1. Ficar sabendo, reter na memória, tomar conhecimento de, 2. 2 Adquirir habilidade prática 
(em), 3. 3 Passar a compreender (algo) melhor graças a um depuramento da capacidade de 
apreciação, empatia, percepção etc. 
Esses significados têm algumas falhas quando associados a computadores. Como você sabe se uma 
máquina "tem conhecimento de" alguma coisa? Você provavelmente não pode fazer perguntas; e 
mesmo se pudesse, você não testaria sua capacidade de aprender, mas sua capacidade de responder 
a perguntas. Como você sabe se "tomou conhecimento" de alguma coisa? Toda a questão sobre se 
os computadores podem estar cientes ou conscientes é uma questão filosófica. 
Anteriormente, definimos mineração de dados operacionalmente, como o processo de descoberta 
de padrões, de forma automática ou semiautomática, em grandes quantidades de dados - e os 
padrões devem ser úteis. Uma definição operacional pode ser formulada da mesma maneira para a 
aprendizagem. As coisas são aprendidas quando eles mudam o comportamento de uma forma que 
nos faz ter um melhor desempenho no futuro. 
85692484404 - Edinalva Aparecida Aquino Sá
 
 
 
 
 
 
 
 
 35 
94 
Tal fato associa o aprendizado ao desempenho e não ao conhecimento. Você pode testar o 
aprendizado observando o comportamento e comparando-o com o comportamento passado. Este 
é um tipo de definição muito mais objetiva e parece ser muito mais satisfatória. 
Mas ainda há um problema. A aprendizagem é um conceito bastante escorregadio. Muitas coisas 
mudam seu comportamento de forma a torná-las melhor no futuro, mas não queremos dizer que 
elas realmente aprenderam. Um bom exemplo é um chinelo confortável. Será que ele aprendeu a 
forma do seu pé? Certamente mudou sua forma para se tornar melhor como um chinelo! No 
entanto, dificilmente podemos chamar isso de aprendizado. 
Na linguagem cotidiana, muitas vezĞƐ� ƵƐĂŵŽƐ� Ă� ƉĂůĂǀƌĂ� “ƚƌĞŝŶĂŵĞŶƚŽ ?�ƉĂƌĂ� ĚĞŶŽƚĂƌ� Ƶŵ� ƚŝƉŽ� ĚĞ�
aprendizado sem sentido. Nós treinamos animais e até plantas. Mas aprender é diferente. Aprender 
implica pensar. Aprender implica propósito. Algo que se aprende tem que ser feito 
intencionalmente. É por isso que não diríamos que uma vinha aprendeu a crescer em torno de uma 
treliça em um vinhedo - diríamos que ela foi treinada. Aprender sem propósito é apenas treinar. 
Assim, em um exame mais detalhado, uma definição de aprendizado, em termos operacionais e 
orientados para o desempenho, tem seus próprios problemas quando se trata de falar sobre

Outros materiais