Escolar Documentos
Profissional Documentos
Cultura Documentos
Exponencial Concursos
https://www.youtube.com/channel/UCr9rg5WOPmXvZgOfBl-HEuw
@exponencial_concursos
https://www.instagram.com/exponencial_concursos/?hl=pt-br
@profecoach_ramonsouza
https://www.instagram.com/proframonsouza/?hl=pt-br
Exponencial Concursos
https://www.youtube.com/channel/UCr9rg5WOPmXvZgOfBl-HEuw
@exponencial_concursos
https://www.instagram.com/exponencial_concursos/?hl=pt-br
ASSUNTOS PÁGINA
1. BANCOS DE DADOS
Banco de Dados
•Auxilia na:
SGBD ▪Definição
▪Construção
(coleção de programas) ▪Manipulação
▪Compartilhamento
▪Proteção
▪Manutenção
BD SGBD SBD
Elsmari e Navathe
(vantagens de usar a abordagem SGBD)
▪Controle de redundância.
▪Restrição de acesso não autorizado.
▪Armazenamento persistente para objetos do programa.
▪Estruturas de armazenamento e técnicas de pesquisa para o
processamento eficiente de consulta.
▪Backup e recuperação.
▪Múltiplas interfaces do usuário.
▪Representação de relacionamentos complexos entre dados.
▪Restrições de integridade.
▪Dedução e ação usando regras.
▪Potencial para garantir padrões.
▪Tempo reduzido para o desenvolvimento de aplicações.
▪Flexibilidade.
▪Disponibilidade de informações atualizadas.
•Economias de escala.
Date
(benefícios da abordagem de BD)
▪O dado pode ser compartilhado.
▪A redundância pode ser reduzida.
▪Inconsistências podem ser evitadas.
▪Pode-se utilizar o suporte a transações.
▪A integridade pode ser mantida.
▪A segurança pode ser aperfeiçoada.
▪Requisitos conflitantes podem ser balanceados.
▪Padrões podem ser utilizados.
Esforço adicional
Generalidade para para funções de
definição e segurança,
processamento de concorrência,
dados recuperação e
integridade
Isolamento
executar
Atomicidade
transação
ser realizada dados de um isolada das confirmada
em sua estado demais. devem ser
totalidade ou consistente persistidas
não deve ser para outro. no banco de
realizada de dados.
forma alguma.
EXEMPLO:
Para ajudar no entendimento do que é o catálogo ou dicionário de dados,
vamos exemplificar por meio de um trecho de um catálogo de uma universidade
fictícia.
RELAÇÕES COLUNAS
Catálogo ou
dicionário de
dados
Metadados ou
informações de
descritor
Estrutura de
Formato de Restrições
cada tipo de Tipo
armazenamento sobre os dados
arquivo
Físico
Conceitual
Independente de Totalmente
hardware e software. Dependem do SGBD. dependentes do SGBD.
Arquitetura de 3 esquemas
Descreve a estrutura de
armazenamento físico geralmente
com um modelo físico.
Caros alunos, é importante que vocês tenham bastante cuidado para não
confundir os modelos de dados com os níveis da arquitetura de três esquemas.
É muito fácil confundir, pois além de possuírem a mesma quantidade de níveis,
temos inclusive nomes iguais para representar níveis desses modelos.
Tenha as seguintes noções:
▪ Modelos de dados são usados para representar os conceitos
usados para descrever a estruturas dos bancos de dados.
o Modelo conceitual ou de alto nível.
o Modelo lógico, representativo ou de implementação.
o Modelo físico.
Arquitetura
Modelos de
de 3
dados
esquemas
Representar os conceitos usados para Representar as camadas de
descrever a estruturas dos bancos interação do usuário com o banco de
de dados. dados.
Estruturas de armazenamento
Armazenamento
(usa modelo físico)
Modelo relacional
•Dados como uma coleção de tabelas.
Modelo de objetos
•Dados como objetos, propriedades (atributos) e
operações (métodos).
Modelo objeto-relacional
•SGBD relacional com extensões para modelos de objetos.
Modelo XML
•Estruturas de árvores hierárquicas com uso de tags.
Modelo de rede
•Registros relacionados de forma 1:N.
Modelo hierárquico
•Estruturas de árvores hierárquicas.
EXEMPLO:
Vejamos um exemplo de uma relação (ou tabela) do modelo relacional
estão representados os dados do cadastro de clientes de uma loja fictícia.
Código do Nome do cliente CPF Endereço
cliente
Note que todos os dados são representados por meio de uma estrutura
tabular (uma relação ou tabela), isto é, segue-se o Princípio da Informação.
Podemos observar a presença dos 3 aspectos discutidos por C. J. Date:
❖ Estrutural: você percebe os dados como uma tabela, mas estes
dados podem estar armazenados em outras estruturas.
❖ De integridade: podemos ter uma regra que só permita o cadastro
de um cliente se for inserido um CPF composto somente por números
e seguindo o padrão XXX.XXX.XXX-XX.
❖ Manipulador: podemos fazer uma operação nesta tabela para
selecionar, por exemplo, somente os clientes que moram na Rua A.
Vejamos um pouco sobre a estruturação dos bancos de dados relacionais.
A arquitetura ANSI/SPARC em três níveis considera que os Bancos de
dados relacionais consistem de três componentes:
❖ Uma coleção de estruturas de dados, formalmente chamadas de
relações, ou informalmente tabelas, compondo o nível conceitual;
❖ Uma coleção dos operadores, a álgebra e o cálculo relacionais, que
constituem a base da linguagem SQL;
❖ Uma coleção de restrições da integridade, definindo o conjunto
consistente de estados de base de dados e de alterações de estados.
O autor C.J. Date amplia essa divisão, definindo que de maneira mais
formal, o modelo relacional consiste em cinco componentes:
❖ Uma coleção ilimitada de tipos escalares (incluindo em particular o
tipo booleano ou valor verdade).
❖ Um gerador de tipo de relação e uma interpretação pretendida para
esses tipos de relações gerados.
❖ Recursos para definição de RelVars (variáveis de relações) desses
tipos de relações gerados.
❖ Um operador de atribuição relacional para atribuição de valores de
relações a essas RelVars.
Gabarito: Letra A.
2.3 Tabelas
Como vimos, o modelo relacional consiste em uma coleção de tabelas (ou
relações). Podemos dizer, então, que a tabela ou relação é a estrutura chave
deste modelo, servindo para representar os dados e relacionamentos entre
esses dados. A cada uma destas tabelas é atribuído um nome único.
Em uma tabela, cada linha (tupla) representa uma coleção de valores
de dados relacionados. Uma linha representa um fato que normalmente
corresponde a uma entidade ou relacionamento do mundo real. Na terminologia
formal de banco de dados, uma linha é chamada tupla.
Uma tabela é organizada em colunas, que servem para ajudar a
interpretar o significado dos valores em cada linha. Formalmente, um
cabeçalho da coluna é chamado de atributo. O número de colunas de uma
relação representa o grau (ou aridade) desta relação.
O tipo de dado que descreve os tipos de valores que podem aparecer
em cada coluna é representada por um domínio de valores possíveis. É
importante destacar que um domínio é um conjunto de valores atômicos, ou
seja, é indivisível.
EXEMPLO:
Vamos revisitar o nosso exemplo da tabela clientes para fixar estes
conceitos. A tabela “Clientes” representa os dados referentes aos clientes de
uma loja fictícia. “Clientes” é um nome único para esta tabela.
Código do Nome do cliente CPF Endereço
cliente
134512 João Aprovado dos Santos 123.123.123-12 Rua A, nº 123
251218 Maria Concursada Fernandes 456.456.456-45 Rua B, nº 456
Esta tabela está estruturada em quatro colunas (código do cliente, nome
do cliente, cpf e endereço). Estas colunas (ou atributos) ajudam a entender
os significados dos valores das tabelas, assim, podemos perceber que os clientes
são identificados por um código, pelo seu nome, cpf e tem seu endereço
cadastrado. Com base no número de colunas, podemos perceber que o grau
(ou aridade) desta tabela é quatro.
As linhas (ou tuplas) da tabela demonstram coleções de dados
relacionados, por exemplo, todos os dados da primeira linha são relacionados
ao cliente João Aprovado dos Santos.
Vejamos, por fim, um exemplo de domínio. Podemos citar, por exemplo,
que o domínio para o cpf é um conjunto de números com onze dígitos e para
o nome dos clientes é um conjunto de caracteres.
DÚVIDAS E POLÊMICAS
Questão da ordenação das linhas e colunas...
No modelo relacional temos que:
▪ Ordenação de tuplas em uma relação: uma relação é definida como
um conjunto de tuplas. Matematicamente, os elementos de um conjunto
não possuem nenhuma ordem em particular, isto é, uma relação não é
sensível à ordenação de tuplas.
▪ Ordem de valores dentro de uma tupla: uma tupla é uma lista
ordenada de valores, de modo que a ordem dos valores – e, portanto,
dos atributos em um esquema de relação – é importante. (Exceto na
visão de Date)
Um modo mais claro de verificar a importância da ordem das colunas é quando
estamos usando a linguagem SQL para realizar inserções de dados na tabela.
Podemos usar a seguinte sintaxe:
INSERT INTO tabela VALUES (valor1, valor2, valor3,...)
Esse comando irá inserir os valores segundo a ordem das colunas na tabela.
Caso não haja correspondência entre os valores passados e os tipos dos campos,
haverá falhas na inserção. Por isso a ordem das colunas é importante.
Logicamente, existem comandos mais específicos para definir quais as colunas
selecionar, mas esse exemplo mostra que a ordem das colunas tem impacto nas
operações realizadas no banco.
Sugiro aqui objetividade, isto é, que vocês decorem, pois, a ordenação é tratada
da própria definição e, portanto, não devemos brigar com esses conceitos, mas
aceitá-los e acertar as questões. Vejamos umas questões como exemplo:
(CESPE - 2014 - TJ-SE - Analista Judiciário - Banco de Dados) No modelo
relacional, sob o ponto de vista do usuário, a ordem em que as linhas estão
armazenadas nas tabelas é insignificante.
Gabarito: Certo.
EXEMPLO:
Tomemos como exemplo a relação Servidor a seguir:
matricula nome salario
134512 João Aprovado dos Santos 13.002,03
251218 Maria Concursada Fernandes 5.519,61
124578 Paulo Passou Batista 13.002,03
131820 Glória Nomeada Rodrigues 5.519,61
112035 Eduardo Posse Pordeus 13.002,03
Queremos selecionar somente aqueles servidores que ganham menos
que 13000. Para isso podemos utilizar a operação de Seleção da
seguinte forma: σsalario<13000 (Servidor)
O resultado desta operação será:
matricula nome salario
251218 Maria Concursada Fernandes 5.519,61
131820 Glória Nomeada Rodrigues 5.519,61
Note que, nesta operação o predicado define uma condição nos valores
dos atributos que deve ser satisfeita pelo retorno da operação e, dessa
forma, somente foram retornadas as linhas com salário menor que
13000.
EXEMPLO:
Para exemplificarmos o uso da junção, considere a tabela Servidor já
utilizada nos exemplos anteriores e a tabela Cargo a seguir:
nome_cargo salario
Auditor de Contas Públicas 13.002,03
Agente de Documentação 5.519,61
Ao realizarmos a operação de junção Servidor Cargo obteremos:
matricula nome salario nome_cargo
134512 João Aprovado dos Santos 13.002,03 Auditor de Contas Públicas
251218 Maria Concursada Fernandes 5.519,61 Agente de Documentação
124578 Paulo Passou Batista 13.002,03 Auditor de Contas Públicas
131820 Glória Nomeada Rodrigues 5.519,61 Agente de Documentação
112035 Eduardo Posse Pordeus 13.002,03 Auditor de Contas Públicas
A operação de junção seleciona linhas das duas tabelas, fazendo uma
relação entre os atributos de mesmo nome. No caso do exemplo, o
resultado foi formado pela combinação das tuplas da tabela Servidor e
da tabela Cargo com base no atributo salario.
Maneira
Tabela derivada de Tabela virtual: não
alternativa de Consulta pré-
outras tabelas necessariamente
visualização dos definida ou
(tabelas base ou existe em forma
dados de uma ou armazenada.
outras visões). física.
mais tabelas.
DÚVIDAS E POLÊMICAS
Como uma View pode aumentar a velocidade das informações, visto que será
sempre executada a consulta?
Muito cuidado, pois uma View aumenta a velocidade do ACESSO as informações
do ponto de vista do usuário, pois ao invés de ter que definir uma consulta,
basta acessá-la. Portanto, não irá requerer tempo e esforço para montar a
consulta, otimizando o tempo necessário para visualizar os dados.
2.6 Índices
Vamos supor que seja necessário realizar uma consulta em uma tabela
de vendas de uma grande multinacional com mais de um milhão de tuplas. Uma
consulta que precise percorrer linha por linha procurando um registro pode não
ser a forma mais eficiente e, para isso, foram criados os índices.
De maneira geral, um índice funciona com base no mesmo princípio
aplicado aos índices de livros ou desta aula. Se você está interessado em ler
somente um determinado tópico, você verifica no índice a localização específica
deste tópico e vai até elas para ler o conteúdo que deseja. Do mesmo modo,
através de um índice adequado, o sistema de banco de dados pode percorrer
primeiro o índice para descobrir onde obter os dados e, em seguida, acessar
diretamente aos locais para obter os dados necessários.
Os índices são estruturas de acesso auxiliares associados a tabelas,
que são utilizados para agilizar a recuperação de registros em resposta a
certas condições de pesquisa.
As estruturas de índice são arquivos adicionais no disco que oferecem
caminhos de acesso secundários, os quais oferecem formas alternativas de
acessar os registros sem afetar o posicionamento físico no arquivo de dados
primário no disco.
Os índices permitem o acesso eficiente aos registros com base nos
campos de indexação que são usados para construir o índice. Basicamente,
qualquer atributo de uma tabela pode servir para criar um índice, e múltiplos
índices em diferentes atributos podem ser construídos na mesma tabela.
Um índice permite que o conjunto das linhas de uma tabela que
satisfazem determinado critério seja localizado rapidamente, através de
ponteiros associados.
Estrutura
de acesso
auxiliar.
Uso de Utilizados
ponteiros para agilizar
para a
localização
Índice a
recuperação
dos dados. de registros
Oferecem
caminhos Não devem ser criados
de acesso de maneira ilimitada e
secundários sem cuidados.
Esquema 19 – Índices.
2.7 Chaves
Vimos que uma tabela (ou relação) é constituída de linhas que
representam dados relacionados. Essas linhas devem ser distintas, ou seja, não
devem existir duas linhas com os mesmos valores para todos os seus atributos.
Em um banco de dados relacional, as chaves são usadas para essa distinção.
Veremos a seguir, os principais conceitos relacionados as chaves.
Uma superchave é um conjunto de um ou mais atributos que,
coletivamente, nos permitem identificar de forma exclusiva uma tupla
na relação. De outro modo, uma superchave especifica uma restrição de
exclusividade de que duas tuplas não podem ter os mesmos valores para todos
os seus atributos.
É importante destacar que cada relação tem pelo menos uma superchave
padrão: o conjunto de todos os seus atributos. Outra consideração importante
é que uma superchave pode ter atributos redundantes ou desnecessários para
a identificação única de uma tupla.
Uma chave, por sua vez, é uma superchave com a propriedade
adicional de que a remoção de qualquer dos atributos a faz deixar de
ser chave. Assim, uma chave é um conjunto de um ou mais atributos que,
coletivamente, nos permitem identificar de forma exclusiva uma tupla na
relação, sendo que a remoção de qualquer dos seus atributos a faz deixar de
identificar unicamente a tupla na relação.
EXEMPLO:
Para clarificar o entendimento dos diversos conceitos de chave, vejamos o
seguinte exemplo tomando como base a tabela Servidor a seguir.
matricula cpf nome salario
134512 65465465454 João Aprovado dos Santos 13.002,03
251218 12312312312 Maria Concursada Fernandes 5.519,61
124578 45645645645 Paulo Passou Batista 13.002,03
131820 78978978978 Glória Nomeada Rodrigues 5.519,61
112035 32132132132 Eduardo Posse Pordeus 13.002,03
O atributo matricula do servidor é suficiente para distinguir uma tupla de outra.
Assim, matricula é uma superchave. O atributo de salario do servidor, por
outro lado, não é uma superchave, porque vários servidores podem ter o
mesmo salario. Outras superchaves possíveis podem ser {cpf}, {matricula,
cpf}, {matricula, nome}, {cpf, nome} ou mesmo o conjunto formado por
todos os atributos da tabela {matricula, cpf, nome, salario}. Dessa forma,
podemos ter superchave com atributos ambíguos ou em excesso.
No exemplo, considerando a propriedade de ser uma superchave mínima,
chegamos as chaves. Na tabela, podemos ter a chave matrícula ou a chave
cpf, pois ambos os atributos identificam unicamente as tuplas e como são
únicos não podem ser removidos. Dessa forma, matricula ou cpf são chaves
candidatas da relação. Diferente é o caso de {matrícula, nome}, pois apesar
de servir para identificar exclusivamente as linhas da tabela, podemos retirar
o atributo nome e, ainda assim, a restrição de exclusividade será mantida.
O designer de banco de dados pode optar, por exemplo, pela escolha de
matricula para ser a chave primária desta relação. Neste caso, cpf será
chave secundária ou chave única.
A escolha da chave primária dentre as chaves candidatas possíveis é um
pouco arbitrária, porém devem-se tomar uma série de cuidados:
❖ Normalmente é melhor escolher uma chave com um único atributo
ou pequeno número de atributos.
❖ A chave primária deve ser escolhida de tal forma que seus valores
de atributo nunca sejam, ou muito raramente, mudados.
❖ Os atributos das tuplas da chave devem possuir valores válidos,
ou seja, não devem permitir valor NULL. Este cuidado na verdade é
uma restrição, a chamada restrição de integridade da entidade.
EXEMPLO:
Vejamos a tabela de Departamento a seguir.
codigo nome_departamento qtd_servidores matricula_chefe
123 Departamento Especial de Auditoria 10 134512
456 Grupo de Auditoria Operacional 5 251218
789 Gerência de Pregão 3 124578
Esta tabela possui como chave primária o atributo codigo que identifica
unicamente cada linha. Indica também os nomes dos departamentos, a
quantidade de servidores e a matricula do servidor chefe do setor.
Perceba que o atributo matricula do chefe é o mesmo presente na tabela de
cadastro dos servidores. Há aqui, portanto, um atributo que faz referência a
uma chave primária (ou candidata) de outra tabela. Esse atributo
matricula_chefe é, por isso, chave estrangeira da tabela Departamento,
que referencia a tabela Servidor.
Esquema 20 – Chaves.
DÚVIDAS E POLÊMICAS
A chave estrangeira de uma tabela deve referenciar a chave primária ou
qualquer chave candidata da outra tabela?
Pessoal, essa é uma daquelas típicas divergências que costumam pegar na hora
da prova e infelizmente não temos uma conclusão bem definida, pois as bancas
costumam adotar ambos os posicionamentos.
Como a chave primária é uma escolha (mais ou menos arbitrária) dentre as
chaves candidatas, basta que a chave estrangeira referencie uma chave
CANDIDATA de outra tabela e não necessariamente uma chave primária.
Porém, várias são as questões que dão como correta a afirmação de que a chave
candidata referencia ou deve referenciar a chave PRIMÁRIA da outra tabela.
Vejamos uma questão que afirma a possibilidade de relacionamento com a
chave candidata:
(CESPE - 2008 - STF - Analista Judiciário - Tecnologia da Informação)
Chaves estrangeiras podem ser definidas como sendo um conjunto de atributos
pertencentes a um esquema de relação que constituem chaves primárias ou
candidatas em outros esquemas independentes.
Gabarito: Certo.
E agora uma que fala apenas de chave primária:
(CESPE - 2015 - TJ-DFT - Analista Judiciário - Analista de Sistemas) Em
um banco de dados relacional, a chave estrangeira que existe em uma tabela
deve ser chave primária em outra tabela.
Gabarito: Certo.
E para finalizar, uma questão que restringe à chave primária:
(CESPE - 2010 - TRT - 21ª Região (RN) - Analista Judiciário - Tecnologia
da Informação) Uma chave estrangeira é um atributo ou uma combinação de
atributos em uma relação, cujos valores são necessários para equivaler somente
à chave primária de outra relação.
Gabarito: Errado.
2.8 Relacionamentos
Um relacionamento é uma associação entre as tabelas. O
relacionamento existe quando um ou mais dados de uma tabela estão
relacionados de alguma forma com um ou mais dados de outra tabela. Existe
também relacionamento de dados de uma tabela com outros dados desta
mesma tabela, quando falamos em auto relacionamento.
A chave estrangeira é usada para promover os relacionamentos entre
as tabelas. É importante ressaltar que uma chave estrangeira faz a ligação
lógica entre as tabelas, portanto, o relacionamento entre tabelas não existe
fisicamente.
Baseado na cardinalidade dos relacionamentos, isto é, no número de
entidades que outra entidade pode se associar via relacionamento,
podemos ter os seguintes tipos de relacionamento:
❖ Relacionamento um para um (1:1): neste tipo de relacionamento, cada
elemento de uma tabela se relaciona a um único elemento de outra
tabela. Uma das tabelas possui uma chave estrangeira que se liga
logicamente a chave primária da outra tabela (modo mais comum, pois é
possível criar uma tabela única mesclada ou mesmo criar uma terceira tabela
para fazer o cruzamento das chaves primárias). Este relacionamento é pouco
comum nos modelos de bancos de dados relacionais.
EXEMPLO:
Vejamos um exemplo de relacionamento 1:1.
EXEMPLO:
Vejamos um exemplo de relacionamento 1:N.
Um para Um
(1:1)
Em bancos relacionais, uma das tabelas
possui a chave estrangeira. Pode-se,
porém, mesclar as entidades em uma única
tabela ou criar uma terceira tabela para
cruzar as chaves primárias destas.
(existem apenas logicamente, mas não fisicamente)
Um para
Muitos
(1:N)
Esquema 21 - Relacionamentos
Gabarito: Certo.
3. NORMALIZAÇÃO
Vimos que um dos objetivos da abordagem de banco de dados é reduzir
a redundância dos dados, evitando assim que dados duplicados sejam
armazenados sem necessidade. Um dos modos de controlar a redundância é
aplicar a normalização das tabelas.
A normalização de dados pode ser considerada um processo de
analisar os esquemas de relação dados com base em suas dependências
funcionais e chaves primárias para conseguir as propriedades desejadas e a (1)
minimização de redundância e (2) a minimização de anomalias de
inserção, exclusão e atualização.
Para normalizar o banco de dados, deve-se examinar as colunas
(atributos) de uma entidade e as relações entre entidades (tabelas), com o
objetivo de se evitar anomalias observadas na inclusão, exclusão e alteração de
registros. Para adequar o banco de dados, é necessário avaliar com base em
cinco regras (seis com a de boyce-codd), que recebem o nome de formas
normais. Essas correspondem a um conjunto de regras de simplificação e
adequação de tabelas.
A forma normal de uma relação refere-se à condição de forma
normal mais alta a que ela atende e, portanto, indica o grau ao qual ela foi
normalizada.
Uma tabela está na Primeira Forma Normal (1FN) se, e somente se,
todos os valores das colunas (todos os atributos) forem atômicos. Em
outras palavras, uma tabela para estar na 1FN não pode possuir atributos
multivalorados nem compostos.
▪ Compostos: podem ser divididos em subpartes menores, que
representam atributos mais básicos. O valor é a concatenação de seus
componentes atributos simples. Podem formar hierarquia. Ex.:
endereço completo com rua, número e cep.
▪ Multivalorado: possui um conjunto de valores para a mesma
entidade. Um atributo multivalorado pode possuir um limite mínimo e
máximo para restringir o número de valores permitidos. Ex.: telefone
que aceita mais de um número.
Vale ressaltar que a 1FN é considerada parte da definição formal de
uma relação no modelo relacional básico. Assim, só é considerado de
fato um banco de dados relacional se as tabelas estiverem ao menos na
primeira forma normal.
EXEMPLO:
Para os estudos das formas normais vamos utilizar exemplos de tabelas que
não se encontram nas formas normais estudadas e como elas podem ser
transformadas para se adaptar as regras.
Assim, vamos tomar como exemplo a Tabela DEPARTAMENTO a seguir que não
está em nenhuma forma normal, pois sequer está na 1FN.
Uma relação está na Segunda Forma Normal (2FN) se, e somente se,
estiver na 1FN e cada atributo não-chave for dependente da chave
primária (ou candidata) inteira, isto é, cada atributo não-chave não
poderá ser dependente de apenas parte da chave. Trata-se de uma
dependência funcional total.
Chamo a atenção que não basta a dependência total para que uma tabela
esteja na 2FN, pois ela deve estar antes de tudo na 1FN. Além disso, caso a
chave primária da tabela seja formada por apenas um atributo, estando a tabela
na 1FN, estará automaticamente na 2FN.
EXEMPLO:
Vamos utilizar a Tabela FUNC_PROJ que já está na 1FN. Nestes exemplos, DF
significa Dependência Funcional.
Agora, todos os atributos não chave dependem das chaves inteiras das
respectivas tabelas. Note que nesse caso, a tabela FP1 possui como chave os
atributos {Cpf, Projnumero}, sendo que o atributo Horas depende da
totalidade dessa chave. Do mesmo modo, na tabela FP2, o atributo Fnome
depende da totalidade da chave {Cpf} e na tabela FP3, os atributos Projnome
e Projlocal dependem da totalidade da chave Projnumero.
Ressalto que as tabelas FP2 e FP3 possuem somente um atributo como chave,
logo, como estão na 1FN, também estão na 2FN.
Essas tabelas estão na 2FN, pois todos os atributos não chave dependem
totalmente de uma chave primária (ou candidata).
EXEMPLO:
Vamos agora utilizar a tabela FUNC_DEP que já está na 2FN (perceba que aqui
não há dúvida, pois a chave primária é formada por um único atributo {Cpf}.
Note que nesta tabela, temos uma dependência transitiva entre alguns
atributos, pois Dnome e Cpf_gerente dependem do atributo não chave
Dnumero, que, por sua vez, depende da chave {Cpf}. Esquematicamente
temos (→ indica determina):
Se Cpf → Dnumero
E Dnumero → Dnome
Logo, Cpf → Dnome
Essas tabelas estão na 3FN, pois todos os atributos não chave dependem
exclusivamente de uma chave primária.
As formas normais 1FN, 2FN e 3FN foram as definidas originalmente por Edgar
F. Codd, sendo as mais importantes para resolver as questões de prova.
Contudo, hoje existem outras formas normais aceitas como a FNBC, a 4FN e
5FN.
EXEMPLO:
Vamos ver o seguinte exemplo de passagem para a forma normal de boyce
codd. Veja a tabela Lotes1A a seguir:
Suponha que tenhamos milhares de lotes na relação, mas que eles sejam de
apenas duas cidades: Ribeirão Preto e Analândia. Suponha também que os
tamanhos de lote em Ribeirão Preto sejam de apenas 0,5, 0,6, 0,7, 0,8, 0,9 e
1,0 hectare, enquanto os tamanhos de lotes em Analânda sejam restritos a 1,1,
1,2, ..., 1,9 e 2,0 hectares. Isso significa que Area determina Nome_cidade.
Como Area não é uma chave candidata, então esta tabela não está na FNBC.
Uma tabela está na Quarta Forma Normal (4FN) se, e somente se, está na
3FN e não possui dependência multivalorada.
▪ Dependência multivalorada: dependência entre conjuntos de
atributos.
Uma tabela está na Quinta forma normal (5FN) se, e somente se, está
na 4FN e não possui dependência de junção. Na 5FN, o conteúdo de um
registro não pode ser reconstruído (junção) a partir de outros registros
menores, extraídos do registro principal.
▪ Dependência de junção: dependência entre conjuntos de atributos,
com mais de dois atributos.
•Está na 2FN.
•Cada atributo não chave não possui dependência transitiva, para cada chave candidata.
3FN •Todos os atributos dependem exclusivamente da chave primária da tabela.
•Está na 3FN.
•Não possui dependência multivalorada.
4FN
•Está na 4FN.
•Não possui dependência de junção.
5FN
•Está na 2FN.
•Cada atributo não chave não possui dependência transitiva, para cada chave candidata.
3FN •Todos os atributos dependem exclusivamente da chave primária da tabela.
•Está na 3FN.
•Não possui dependência multivalorada.
4FN
•Está na 4FN.
•Não possui dependência de junção.
5FN
Gabarito: Letra E.
4. QUESTÕES COMENTADAS
Bancos de dados
16- (CESPE - 2019 - TJ-AM - Analista Judiciário - Analista de Sistemas)
A respeito de modelos de dados e de modelos orientados a objetos, com o
emprego da linguagem de modelagem unificada, julgue o item que se segue.
No modelo relacional, um objeto de dados mantém internamente dados e um
conjunto de operações que agem sobre os dados.
Resolução:
Assertiva trata na verdade de um modelo de dados de objetos.
O Modelo de dados de objeto define um banco de dados em termos de
objetos, suas propriedades e operações. Os objetos com a mesma estrutura
e comportamento pertencem a uma classe, e as classes são organizadas em
hierarquias. As operações de cada classe são especificadas com procedimentos
predefinidos, chamados métodos.
Gabarito: Errado.
Durabilidade
Consistência
Isolamento
Atomicidade
transação
ser realizada dados de um isolada das confirmada
em sua estado demais. devem ser
totalidade ou consistente persistidas
não deve ser para outro. no banco de
realizada de dados.
forma alguma.
Gabarito: Letra C.
Isolamento
executar
Atomicidade
transação
ser realizada dados de um isolada das confirmada
em sua estado demais. devem ser
totalidade ou consistente persistidas
não deve ser para outro. no banco de
realizada de dados.
forma alguma.
Gabarito: Letra D.
Durabilidade
Consistência
Isolamento
executar
Atomicidade
transação
ser realizada dados de um isolada das confirmada
em sua estado demais. devem ser
totalidade ou consistente persistidas
não deve ser para outro. no banco de
realizada de dados.
forma alguma.
Gabarito: Letra A.
Modelo relacional
•Dados como uma coleção de tabelas.
Modelo de objetos
•Dados como objetos, propriedades (atributos) e operações (métodos).
Modelo objeto-relacional
•SGBD relacional com extensões para modelos de objetos.
Modelo XML
•Estruturas de árvores hierárquicas com uso de tags.
Modelo de rede
•Registros relacionados de forma 1:N.
Modelo hierárquico
•Estruturas de árvores hierárquicas.
Gabarito: Certo.
Banco de Dados
Gabarito: Letra E.
Gabarito: Letra B.
29- (IF Sul Rio-Grandense - 2019 - IF Sul Rio-Grandense - Analista de
Tecnologia da Informação) Considere as afirmações sobre o modelo
relacional e suas características:
I. Podem ser estabelecidos mais de um relacionamento entre entidades, de
acordo com a regra de negócio a ser representada.
II. No modelo relacional, é possível definir uma relação entre um conjunto de
tuplas não ordenadas.
III. A ordem dos valores dentro de uma tupla é relevante, a menos que se
estabeleça uma correspondência entre esses valores e os atributos definidos.
Está(ão) correta(s) a(s) afirmativa(s)
a) I, apenas.
b) II e III, apenas.
c) I e III, apenas.
d) I, II e III.
Resolução:
Vamos analisar cada um dos itens:
I. Correto: não há nenhuma restrição para que haja somente um
relacionamento entre duas ou mais entidades.
II. Correto: para isso, basta selecionar as tuplas com base em alguma regra.
Assim, é possível selecionar um conjunto de tuplas não sequenciais. Por
exemplo, construir uma relação com os funcionários que possuam salários
maiores que determinado valor.
III. Correto: Uma tupla é uma lista ordenada de valores, de modo que a ordem
dos valores em uma tupla – e, portanto, dos atributos em um esquema de
relação – é importante. (Aqui há uma divergência, pois Date considera
que a tupla é um conjunto, também não importando a ordem dos
valores).
Gabarito: Letra D.
Formas normais
44- (FCC - 2019 - TJ-MA - Técnico Judiciário - Técnico em Informática
- Software) Ter um campo calculado em uma tabela, ou seja, um campo que
é resultante de cálculo com valores de outros campos viola direta e
principalmente a
a) primeira forma normal (1FN).
b) quarta forma normal (4FN).
c) terceira forma normal (3FN).
d) quinta forma normal (5FN).
e) segunda forma normal (2FN).
Resolução:
Se há um campo calculado, significa que este campo é obtido a partir de outros
campos, isto é, há uma dependência transitiva. Portanto, há violação da 3FN.
•Está na 2FN.
•Cada atributo não chave não possui dependência transitiva, para cada chave candidata.
3FN •Todos os atributos dependem exclusivamente da chave primária da tabela.
•Está na 3FN.
•Não possui dependência multivalorada.
4FN
•Está na 4FN.
•Não possui dependência de junção.
5FN
Gabarito: Letra C.
Gabarito: Letra A.
46- (VUNESP - 2019 - Prefeitura de Valinhos - SP - Analista de
Tecnologia da Informação – SAI) A definição da primeira forma normal em
bancos de dados relacionais estabelece que
a) cada conjunto de entidades não pode possuir mais do que cinco atributos.
b) não deve haver relacionamentos do tipo um para um entre conjuntos de
entidades.
c) não deve haver relacionamentos do tipo muitos para muitos entre conjuntos
de entidades.
d) os domínios de cada conjunto de entidades não podem ser do tipo booleano.
e) os domínios dos atributos de um conjunto de entidades devem ser atômicos.
Resolução:
Uma tabela está na Primeira Forma Normal - 1FN se, e somente se, todos
os valores das colunas (todos os atributos) forem atômicos. Em outras
palavras, uma tabela para estar na 1FN não pode possuir atributos
multivalorados nem compostos.
Gabarito: Letra E.
•Está na 2FN.
•Cada atributo não chave não possui dependência transitiva, para cada chave
candidata.
3FN •Todos os atributos dependem exclusivamente da chave primária da tabela.
•Está na 3FN.
•Não possui dependência multivalorada.
4FN
•Está na 4FN.
•Não possui dependência de junção.
5FN
Gabarito: Letra D.
5. RISCO EXPONENCIAL
Banco de Dados
•Auxilia na:
SGBD ▪Definição
▪Construção
(coleção de programas) ▪Manipulação
▪Compartilhamento
▪Proteção
▪Manutenção
BD SGBD SBD
Elsmari e Navathe
(vantagens de usar a abordagem SGBD)
▪Controle de redundância.
▪Restrição de acesso não autorizado.
▪Armazenamento persistente para objetos do programa.
▪Estruturas de armazenamento e técnicas de pesquisa para o
processamento eficiente de consulta.
▪Backup e recuperação.
▪Múltiplas interfaces do usuário.
▪Representação de relacionamentos complexos entre dados.
▪Restrições de integridade.
▪Dedução e ação usando regras.
▪Potencial para garantir padrões.
▪Tempo reduzido para o desenvolvimento de aplicações.
▪Flexibilidade.
▪Disponibilidade de informações atualizadas.
•Economias de escala.
Date
(benefícios da abordagem de BD)
▪O dado pode ser compartilhado.
▪A redundância pode ser reduzida.
▪Inconsistências podem ser evitadas.
▪Pode-se utilizar o suporte a transações.
▪A integridade pode ser mantida.
▪A segurança pode ser aperfeiçoada.
▪Requisitos conflitantes podem ser balanceados.
▪Padrões podem ser utilizados.
Isolamento
executar
Atomicidade
transação
ser realizada dados de um isolada das confirmada
em sua estado demais. devem ser
totalidade ou consistente persistidas
não deve ser para outro. no banco de
realizada de dados.
forma alguma.
Catálogo ou
dicionário de
dados
Metadados ou
informações de
descritor
Estrutura de
Formato de Restrições
cada tipo de Tipo
armazenamento sobre os dados
arquivo
Lógico
Físico
Conceitual comprendido por intermediária. pelos usuários.
usuários.
Representação específica Descrevem o
Registra os dados. de um modelo interno, armazenamento dos
utilizando as estruturas dados.
de BD
Independente de Totalmente
hardware e software. Dependem do SGBD. dependentes do SGBD.
Arquitetura de 3 esquemas
Descreve a estrutura de
armazenamento físico geralmente
com um modelo físico.
Modelos de Arquitetura de
dados 3 esquemas
Representar os conceitos usados para descrever a Representar as camadas de interação do usuário com o
estruturas dos bancos de dados. banco de dados.
Estruturas de armazenamento
Armazenamento
(usa modelo físico)
Modelo relacional
•Dados como uma coleção de tabelas.
Modelo de objetos
•Dados como objetos, propriedades (atributos) e operações
(métodos).
Modelo objeto-relacional
•SGBD relacional com extensões para modelos de objetos.
Modelo XML
•Estruturas de árvores hierárquicas com uso de tags.
Modelo de rede
•Registros relacionados de forma 1:N.
Modelo hierárquico
•Estruturas de árvores hierárquicas.
Visão (View)
Maneira
Tabela derivada de Tabela virtual: não
alternativa de Consulta pré-
outras tabelas necessariamente
visualização dos definida ou
(tabelas base ou existe em forma
dados de uma ou armazenada.
outras visões). física.
mais tabelas.
Índices
Estrutura
de acesso
auxiliar.
Uso de Utilizados
ponteiros para agilizar
para a
localização
Índice a
recuperação
dos dados. de registros
Chaves
Relacionamentos
Um para Um
(1:1)
Em bancos relacionais, uma das tabelas
possui a chave estrangeira. Pode-se,
porém, mesclar as entidades em uma única
tabela ou criar uma terceira tabela para
cruzar as chaves primárias destas.
(existem apenas logicamente, mas não fisicamente)
Um para
Muitos
(1:N)
Formas normais
•Está na 2FN.
•Cada atributo não chave não possui dependência transitiva, para cada
chave candidata.
3FN •Todos os atributos dependem exclusivamente da chave primária da tabela.
•Está na 3FN.
•Não possui dependência multivalorada.
4FN
•Está na 4FN.
•Não possui dependência de junção.
5FN
6. LISTAS DE EXERCÍCIOS
Questões comentadas durante a aula
1- (CESPE - 2019 – SEFAZ-RS – Auditor Fiscal da Receita Estadual)
As funções de um sistema de gerenciamento de banco de dados (SGBD) incluem
a) gerenciar o becape e a recuperação de dados, bem como o escalonamento
de processos no processador por meio do banco de dados.
b) gerenciar o sistema de arquivos e a segurança do banco de dados.
c) gerenciar a entrada e saída de dispositivos, linguagens de acesso ao banco
de dados e interfaces de programação de aplicações.
d) gerenciar a integridade de dados, o dicionário e o armazenamento de dados,
bem como a memória do computador enquanto o SGBD estiver em execução.
e) transformar e apresentar dados, controlar o acesso de multiusuário e prover
interfaces de comunicação do banco de dados.
Bancos de dados
16- (CESPE - 2019 - TJ-AM - Analista Judiciário - Analista de Sistemas)
A respeito de modelos de dados e de modelos orientados a objetos, com o
emprego da linguagem de modelagem unificada, julgue o item que se segue.
No modelo relacional, um objeto de dados mantém internamente dados e um
conjunto de operações que agem sobre os dados.
d) durabilidade.
e) volatilidade.
NUMERO
As informações anteriormente apresentadas correspondem aos campos de uma
tabela de um banco de dados, a qual é acessada por mais de um sistema de
informação e também por outras tabelas. Esses dados são utilizados para
simples cadastros, desde a consulta até sua alteração, e também para
prevenção à fraude, por meio de verificação dos dados da tabela e de outros
dados em diferentes bases de dados ou outros meios de informação.
Considerando essas informações, julgue o item que segue.
A referida tabela faz parte de um banco de dados relacional.
Formas Normais
44- (FCC - 2019 - TJ-MA - Técnico Judiciário - Técnico em Informática
- Software) Ter um campo calculado em uma tabela, ou seja, um campo que
é resultante de cálculo com valores de outros campos viola direta e
principalmente a
a) primeira forma normal (1FN).
b) quarta forma normal (4FN).
c) terceira forma normal (3FN).
d) quinta forma normal (5FN).
e) segunda forma normal (2FN).
7. GABARITO
1 E 11 D 21 A 31 E 41 Certo
2 Errado 12 C 22 B 32 B 42 Certo
3 D 13 B 23 Errado 33 C 43 Certo
4 D 14 Certo 24 B 34 D 44 C
5 Certo 15 E 25 Certo 35 D 45 A
6 D 16 Errado 26 Certo 36 Certo 46 E
7 Errado 17 B 27 E 37 A 47 A
8 A 18 C 28 B 38 B 48 A
9 C 19 D 29 D 39 D 49 Errado
10 A 20 D 30 E 40 Certo 50 D
8. REFERÊNCIAS
BATTISTI, Julio. O Modelo Relacional de Dados. Disponível em:
https://juliobattisti.com.br/artigos/office/modelorelacional_p2.asp. Acesso em:
14 nov. 2017.
DATE, Christopher J. Introdução a sistemas de bancos de dados. Rio de
Janeiro: Elsevier Brasil, 2003.
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistema de Banco de Dados. 6ed.
São Paulo: Pearson Addison Wesley, 2011.
SYLBERCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Database
System Concepts. 6th. New York: McGraw-Hill, 2011.
SOFTBLUE. Curso de SQL Completo Gratuito. Disponível em:
<https://www.softblue.com.br/site/curso/id/3/CURSO+DE+SQL+COMPLETO+
BASICO+AO+AVANCADO+ON+LINE+BD03+GRATIS>