Buscar

Aula 4 - Modelo Relacional

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 87 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 87 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 87 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

Modelo Relacional
Audir da Costa Oliveira Filho
Instituto Federal de Goiás – IFG
campus Luziânia
audir.filho@ifg.edu.br
13 de setembro de 2020
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 1 / 87
audir.filho@ifg.edu.br
Conteúdo programático
1 Modelo Relacional
2 Restrições de Integridade
3 Transformação ER para Relacional
4 Normalização
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 2 / 87
Conteúdo programático
1 Modelo Relacional
2 Restrições de Integridade
3 Transformação ER para Relacional
4 Normalização
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 3 / 87
Modelo Relacional
Introduzido por Ted Codd, da IBM Research, em 1970.
Utiliza o conceito de relação matemática.
Possui base teórica na teoria dos conjuntos e na lógica de
predicados.
Primeiras implementações comercias modelo relacional:
SGBD Oracle
SQL/DS da IBM
O modelo relacional representa o banco de dados como uma coleção
de Relações (Tabelas).
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 4 / 87
Modelo Relacional
O modelo relacional é um modelo lógico, utilizado em banco de
dados relacionais.
Neste modelo começamos a nos preocupar em como os dados
devem ser armazenados e em como criaremos os relacionamentos
do modelo conceitual.
Este modelo tem por finalidade representar os dados como uma
coleção de tabelas e cada linha de uma tabela representa uma
coleção de dados relacionados.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 5 / 87
Modelo Relacional
Domínio (Tipo de Dado)
Atributo (Coluna)
Tupla (Linha ou Registro)
Relação (Tabela)
Esquema (Definição das relações, Especificação do Banco de
Dados)
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 6 / 87
Modelo Relacional
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 7 / 87
Identificação e Associação Entre Relações (Tabelas)
Chave Primária (PK – primary key)
é uma coluna ou uma combinação de colunas cujos valores
distinguem uma linha das demais dentro de uma tabela.
Chave Estrangeira (FK – foreign key)
é uma coluna ou uma combinação de colunas, cujos valores aparecem
necessariamente na chave primária de uma tabela.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 8 / 87
Identificação e Associação entre Relações (Tabelas) -
Chave Primária
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 9 / 87
Identificação e Associação entre Relações (Tabelas) -
Chave Estrangeira
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 10 / 87
Identificação e Associação entre Relações (Tabelas) -
Chave Estrangeira
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 11 / 87
Esquema Completo do Banco de Dados Relacional
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 12 / 87
Características das Relações (Tabelas)
Ordenação de tuplas em uma relação;
Ordenação de valores dentro de uma tupla;
Valores e NULLs nas tuplas;
Interpretação (Sentido) de uma relação (Tipo Entidade ou Tipo
Relacionamento).
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 13 / 87
Conteúdo programático
1 Modelo Relacional
2 Restrições de Integridade
3 Transformação ER para Relacional
4 Normalização
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 14 / 87
Restrições de Integridade
Integridade de domínio
Especificam que o valor de um campo deve obedecer a definição de
valores admitidos para a coluna (o domínio da coluna).
Ex. número inteiro, número real, alfanumérico de tamanho definido,
data, . . . ).
Integridade de vazio
É especificado se os campos de uma coluna podem ou não ser vazios
(se a coluna é obrigatória ou opcional).
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 15 / 87
Restrições de Integridade
Integridade de chave
Trata-se da restrição que define que os valores da chave primária e
alternativa devem ser únicos.
Integridade referencial
É a restrição que define que os valores dos campos que aparecem em
uma chave estrangeira devem aparecer na chave primária da tabela
referenciada.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 16 / 87
Inserção sem Violação de Restrições
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 17 / 87
Restrição de Domínio Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 18 / 87
Restrição de Integridade de Entidade Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 19 / 87
Restrição de Chave Primária Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 20 / 87
Restrição de Integridade Referencial Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 21 / 87
Inserção sem Violação de Restrições
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 22 / 87
Alteração sem Violação de Restrições
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 23 / 87
Alteração sem Violação de Restrições
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 24 / 87
Restrição de Domínio Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 25 / 87
Restrição de Integridade de Entidade Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 26 / 87
Restrição de Chave Primária Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 27 / 87
Restrição de Integridade Referencial Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 28 / 87
Restrição de Integridade Referencial Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 29 / 87
Alteração sem Violação de Restrições
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 30 / 87
Remoção sem Violação de Restrições
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 31 / 87
Restrição de Integridade Referencial Violada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 32 / 87
Conteúdo programático
1 Modelo Relacional
2 Restrições de Integridade
3 Transformação ER para Relacional
4 Normalização
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 33 / 87
Transformação ER para Relacional
Objetivos
Obter um banco de dados que permita boa performance de instruções
de consulta e alteração do banco de dados;
Obter um banco de dados que simplifique o desenvolvimento e a
manutenção de aplicações.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 34 / 87
Transformação entre Modelos
Para descrever uma tabela no modelo relacional, usamos o nome da
tabela seguida dos atributos entre parênteses;
Para identificar chave primária, devem-se sublinhar o(s) atributo(s)
correspondente(s) a ela;
O tipo de cada atributo também deve aparecer no modelo relacional.
tbAluno(matricula: inteiro, nome: character(100),
dt_nascimento: data)
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 35 / 87
Chave Estrangeira e Integridade Referencial
Um conceito muito importante no modelo relacional é o de chave
estrangeira (ou Foreign Key);
Uma chave estrangeira é um atributo da tabela que faz referência a
uma chave primária de outra tabela ou da própria tabela.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 36 / 87
Chave Estrangeira e Integridade Referencial
Exemplo: Dado a tabela “Aluno” e a Tabela “Turma”
tbTurma(codigo_turma: inteiro,
nome_turma: character(5));
tbAluno(matricula: inteiro,
nome: character(200),
dt_nascimento: data,
codigo_turma: inteiro);
Observe que a tabela tbAluno possui o atributo codigo_turma;
Este atributo é chave primária na tabela tbTurma e, portanto, é uma
chave estrangeira na tabela tbAluno.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 37 / 87
Chave Estrangeira e Integridade Referencial
Uma chave estrangeira pode ser identificada por um asterisco (*) na
frente do atributo, como no modelo abaixo.
tbAluno(matricula: inteiro,
nome: character(200),
dt_nascmento: data,
∗codigo_turma: inteiro);
No entanto este tipo de notação não nos permite identificar a que
chave primária de qual tabela a chave estrangeira faz referência.
tbAluno(matricula:inteiro,
nome: character(200),
dt_nascmento: data,
codigo_turma: inteiro)
codigo_turma referencia tbTurma
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 38 / 87
Chave Estrangeira e Integridade Referencial
Uma chave estrangeira sempre fará referência a uma chave primária;
A chave estrangeira nunca fará referência a um atributo que não seja
uma chave primária;
O Valor para uma chave estrangeira deve ser um valor que já tenha
sido cadastrado na chave primária correspondente ou um valor nulo;
Essa restrição é que garante a integridade referencial do modelo
relacional, ou seja, garante que não se faça referencia a valores que
não existam na base de dados.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 39 / 87
Chave Estrangeira e Integridade Referencial
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 40 / 87
Chave Estrangeira e Integridade Referencial
Uma chave estrangeira pode também fazer referência a uma chave
primária dentro da mesma tabela;
Isso ocorre quando temos relacionamento recursivo.
tbAluno(matricula: inteiro,
nome: character(200),
dt_nascmento: data,
matricula_representante: inteiro);
matricula_representante referencia tbaluno;
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 41 / 87
Transformação ER para Relacional
Regras
Evitar junções
ter os dados necessários a uma consulta em uma única linha.
Diminuir o número de chaves primárias
Evitar campos adicionais
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 42 / 87
Transformação ER para Relacional
Cliente (CodCliente: inteiro,
NomeContato: character(200),
Endereco: character(200),
Telefone: character(10));
Cliente (CodCliente: inteiro,
NomeContato: character(200));
ClienteEnder(CodCliente: inteiro,
Endereco: character(200),
Telefone: character(10));
CodCliente referencia Cliente
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 43 / 87
Transformação ER para Relacional
Passos para a Transformação
1 Tradução inicial de entidades e respectivos atributos;
2 Tradução de relacionamentos e respectivos atributos;
3 Tradução de generalizações / especializações.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 44 / 87
Implementação Inicial de Entidades
1 Cada entidade é traduzida para uma tabela.
2 Cada atributo da entidade define uma coluna desta tabela.
Esquema Relacional Correspondente:
Pessoa (CodigoPessoa: inteiro,
Nome: character(200));
Endereco: character(200),
dtDamissao: date,
dtNascimento: date);
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 45 / 87
Implementação Inicial de Entidades
Relacionamento Identificador
Situação na qual a tradução de uma entidade para uma tabela não é
trivial.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 46 / 87
Implementação Inicial de Entidades
Relacionamento Identificador
Chave primária composta por diversos identificadores.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 47 / 87
Implementação de Relacionamentos
Tabela Própria
O relacionamento é implementado através de uma tabela própria.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 48 / 87
Implementação de Relacionamentos
Colunas adicionais dentro de tabela de entidade.
implementação de um relacionamento é a inserção de colunas em
uma tabela correspondente a uma das entidades que participam do
relacionamento.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 49 / 87
Implementação de Relacionamentos
Fusão de tabelas de entidades
A terceira forma de implementar um relacionamento é através da fusão
das tabelas referentes às entidades envolvidas no relacionamento.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 50 / 87
Detalhes da Implementação de Relacionamentos
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 51 / 87
Detalhes da Implementação de Relacionamentos
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 52 / 87
Detalhes da Implementação de Relacionamentos
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 53 / 87
Relacionamentos 1:1
Ambas entidades têm participação opcional.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 54 / 87
Relacionamentos 1:1
Ambas entidades têm participação opcional.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 55 / 87
Relacionamentos 1:1
Uma entidade têm participação obrigatória e a outra tem opcional.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 56 / 87
Relacionamentos 1:1
Uma entidade têm participação obrigatória e a outra tem opcional.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 57 / 87
Relacionamentos 1:1
Ambas entidades têm participação obrigatória.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 58 / 87
Relacionamentos 1:n
Tradução do relacionamento através da adição de colunas.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 59 / 87
Relacionamentos 1:n
Entidades com cardinalidade máxima e um é opcional.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 60 / 87
Relacionamentos 1:n
Entidades com cardinalidade máxima e um é opcional.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 61 / 87
Relacionamentos n:n
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 62 / 87
Relacionamentos n:n
Relacionamento ternário (a) e sua transformação em entidade e
relacionamentos binários (b).
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 63 / 87
Relacionamentos n:n
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 64 / 87
Implementação de Generalização / Especialização
Há duas alternativas:
1 Uso de uma tabela para cada entidade
2 Uso de uma única tabela para toda hierarquia de
generação/especialização.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 65 / 87
Uma Tabela por Entidade Especializada
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 66 / 87
Uma Tabela por Hierarquia
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 67 / 87
Implementação de Generalização / Especialização
Vantagens da implementação com tabela única
Todos os dados referentes a uma ocorrência de entidade genérica e
de sua especialização, estão em uma única linha;
Não há necessidade de realizar junções quando a aplicação deseja
obter dados referentes a uma ocorrência de entidade genérica
juntamente com uma ocorrência de entidade especializada;
A chave primária é armazenada uma única vez, ao contrário da
alternativa com múltiplas tabelas.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 68 / 87
Implementação de Generalização / Especialização
Vantagens da implementação com uma tabela por entidade
especializada
As colunas opcionais que aparecem são apenas aquelas referentes a
atributos que podem ser vazios do ponto de vista da aplicação. Na
solução alternativa, todas colunas referentes a atributos e
relacionamentos das entidades especializadas devem ser definidas
como opcionais.
O controle de colunas opcionais passa a ser feito pela aplicação com
base no valor da coluna TIPO e não pelo SGBD como ocorre na
solução alternativa.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 69 / 87
Refinamento do Modelo Relacional
Observar a possibilidade de implementar o ideal ou o realizável
dentro das restrições de recursos impostas pela prática.
Algumas vezes, o esquema de BD criado através do uso das regras
apresentadas não atende plenamente os requisitos de performance
impostos ao sistema;
Pode ser necessário buscar um alternativa de implementação que
resulte em melhor performance do sistema;
Tais alternativas somente devem ser tentadas em último caso, pois,
do ponto de vista do desenvolvimento de programas sobre o banco
de dados, são sempre piores que as alternativas apresentadas.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 70 / 87
Conteúdo programático
1 Modelo Relacional
2 Restrições de Integridade
3 Transformação ER para Relacional
4 Normalização
Prof. Audir (IFG)Banco de Dados I 13 de setembro de 2020 71 / 87
Normalização em Banco de Dados
O processo de normalização geralmente é aplicado quando temos
uma base de dados que foi desenvolvida sem considerar a existência
de um banco de dados relacional.
O processo de normalização consiste
de regras, denominadas formas
normais.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 72 / 87
Normalização em Banco de Dados
Mas o que é normalização em banco de dados?
Processo onde se aplica regras a todas as entidades (tabelas) do
banco de dados.
O propósito é evitar
redundância de dados;
mistura de diferentes assuntos numa mesma entidade.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 73 / 87
Normalização em Banco de Dados
As formas normais mais conhecidas, são:
A primeira (1FN), segunda (2FN), terceira (3FN) e quarta formas
normais (4FN).
Mas existem mais:
Forma normal de Boyce-Codd
Quinta forma normal
Forma normal Domain-Key
Algumas pessoas trantam o Boyce/Codd como sendo um caso
especifico da 3FN.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 74 / 87
Primeira Forma Normal (1FN)
Uma entidade estará na 1FN, se e somente se, todos seus atributos
(colunas) forem atômicos, ou seja não conter grupos repetitivos ou
colunas que tenham mais de um valor;
Grupos repetidos de dados ocorrem quando uma tabela aparece
dentro de outra tabela.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 75 / 87
Primeira Forma Normal (1FN)
Passos a serem aplicados para consolidação da 1FN:
Identificação da chave primária da tabela;
Identificação da coluna que contem dados repetidos e removê-las;
Criação de uma nova tabela com chave primária para armazenamento
do dado repetido;
Criar uma relação entre a tabela principal e a tabela secundária.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 76 / 87
Exemplo 1a Forma Normal
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 77 / 87
Segunda Forma Normal (2FN)
Uma entidade está na 2FN, se e somente se, estiver na 1FN
e todos seus atributos (colunas) não chaves, dependam
unicamente da chave primária. Se algum atributo depende de
apenas uma parte da chave primária, isso é considerada uma
violação da 2FN.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 78 / 87
Segunda Forma Normal (2FN)
Passos a serem aplicados para consolidação da 2FN:
Identificar colunas que não são funcionalmente dependentes da chave
primária da tabela;
Remover a coluna da tabela e criar uma nova tabela com esses. dados
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 79 / 87
Exemplo 2a Forma Normal
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 80 / 87
Terceira Forma Normal (3FN)
Uma entidade está na 3FN, se e somente se, estiver na 2FN
e todos os atributos (colunas) não chave, forem mutuamente
independentes, isto é, não há dependência funcional entre
elas, e todas dependem única e exclusivamente da chave
primária de forma irredutível.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 81 / 87
Terceira Forma Normal (3FN)
Passos a serem aplicados para consolidação da 3FN:
Identificar as colunas que são funcionalmente dependentes das outras
colunas não chave;
Remover essas colunas.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 82 / 87
Exemplo 3a Forma Normal
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 83 / 87
Quarta Forma Normal (4FN)
Uma entidade está na 4FR, primeiramente já deve estar na terceira,
mas ao mesmo tempo não pode conter mais do que um atributo
multivalorado
Passos a serem aplicados para consolidação da 4FN:
Criar duas entidades para separar os atributos
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 84 / 87
Exemplo 4a Forma Normal
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 85 / 87
Segunda Forma Normal (2FN)
Forma Normal de Boyce-Codd (ou BCNF) requer que não exista
nenhuma dependência funcional não-trivial de atributos em algo mais
do que um superconjunto de uma chave candidata. Neste estágio,
todos os atributos são dependentes de uma chave, de uma chave
inteira e de nada mais que uma chave (excluindo dependências
triviais, como A → A ).
Quinta Forma Normal (ou 5FN ou PJ/NF) requer que não exista
dependências de joins não triviais que não venham de restrições;
chave.
Domain-Key Normal Form (ou DK/NF) requer que todas as
restrições sigam os domínios e restrições chave.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 86 / 87
Bibliografia I
Ramez Elmasri, Shamkant Navathe
Sistemas de Banco de Dados
São Paulo: Pearson Addison Wesley, 2011.
Carlos Alberto Heuser
Projeto de Banco de Dados
Porto Alegre: Sagra Luzzato, 1998.
Prof. Audir (IFG) Banco de Dados I 13 de setembro de 2020 87 / 87
	Modelo Relacional
	Restrições de Integridade
	Transformação ER para Relacional
	Normalização
	Bibliografia

Outros materiais