Você está na página 1de 55
Fundamentos de Banco de Dados 2013/1 Aula 7 Pablo Ariel do Prado López Fundamentos de
Fundamentos de Banco de Dados 2013/1 Aula 7 Pablo Ariel do Prado López Fundamentos de

Fundamentos de Banco de Dados

2013/1

Aula 7 Pablo Ariel do Prado López

Agenda • Modelo Lógico – Normalização – Dicionário de Dados – Restrições de Integridade •

Agenda

Modelo Lógico

Agenda • Modelo Lógico – Normalização – Dicionário de Dados – Restrições de Integridade • Exercício

Normalização

Dicionário de Dados

Restrições de Integridade

Exercício Extra Classe 2

• Duplas Trabalho N1 – Cristiano / João Antônio – Fernando Meneses / Diego Bellver

Duplas

Trabalho N1

• Duplas Trabalho N1 – Cristiano / João Antônio – Fernando Meneses / Diego Bellver –

Cristiano / João Antônio

Fernando Meneses / Diego Bellver

Jonata / Juliano

Rafael / Ricardo Pinheiro

Ricardo Lacerda / Lucas

Exercício • Considere parcialmente abaixo : banco o de dados relacional definido – Empregado(CodigoEmpregado, Nome,

Exercício

Considere

parcialmente abaixo :

banco

o

de

dados

relacional

Considere parcialmente abaixo : banco o de dados relacional definido – Empregado(CodigoEmpregado, Nome, NoPIS-PASEP)

definido

Empregado(CodigoEmpregado, Nome, NoPIS-PASEP)

Dependente(CodigoEmpregado, NoDependente, Nome)

CodigoEmpregado referencia Empregado

Na tabela Empregado, tanto CodigoEmpregado

quanto NoPIS-PASEP podem ser chave primária. Qual

você escolheria como chave primária? Porque?

Exercício • Abaixo aparece um esquema parcial para um banco de dados relacional. Identifique neste

Exercício

Exercício • Abaixo aparece um esquema parcial para um banco de dados relacional. Identifique neste esquema

Abaixo aparece um esquema parcial para um banco de

dados relacional. Identifique neste esquema as chaves

primárias e chaves estrangeiras:

Aluno (CodigoAluno, Nome, CodigoCurso)

Curso (CodigoCurso, Nome)

Disciplina

(CodigoDisciplina,

CodigoDepartamento)

Nome,

Creditos,

Currículo (CodigoCurso, CodigoDisciplina, Obrigatória-Opcional)

Conceito

(CodigoAluno, CodigoDisciplina, Ano-Semestre,

Conceito)

Departamento (CodigoDepartamento, Nome)

Normalização • É um processo sistemático através do qual uma tabela não normalizada é transformada

Normalização

Normalização • É um processo sistemático através do qual uma tabela não normalizada é transformada em

É um processo sistemático através do qual

uma tabela não normalizada é transformada em um conjunto de tabelas que representam da melhor forma a realidade a ser modelada.

Consiste

em

definir

o

formato

lógico

adequado

para

estruturas

de

dados

identificados no projeto lógico do sistema.

Normalização • Seus principais objetivos são: – Minimizar o espaço utilizado pelos dados, – Garantir

Normalização

Normalização • Seus principais objetivos são: – Minimizar o espaço utilizado pelos dados, – Garantir

Seus principais objetivos são:

Minimizar o espaço utilizado pelos dados,

Garantir

informações, Evitar redundâncias de dados,

Evitar a mistura de diferentes assuntos em uma

integridade

confiabilidade

das

a

e

mesma tabela (entidade).

Normalização • Um normalização é o da dependência funcional: conceito básico utilizado para a –

Normalização

Normalização • Um normalização é o da dependência funcional: conceito básico utilizado para a – Dada

Um

normalização é o da dependência funcional:

conceito

básico

utilizado

para

a

Dada

funcionalmente dependente de outro atributo X,

se e, somente se, cada ocorrência de X está associada sempre a mesma ocorrência de Y.

Se um valor para X determina um único valor para

é dito

relação,

atributo

uma

um

Y

Y em qualquer momento.

A

notação

que

funcionais é: X -> Y

representa

dependências

Normalização • Exemplo: • Relação R (atributo A, atributo B, atributo C) Atributo A ->

Normalização

Normalização • Exemplo: • Relação R (atributo A, atributo B, atributo C) Atributo A -> Atributo

Exemplo:

Relação R (atributo A, atributo B, atributo C)

Atributo A -> Atributo B

Atributo A 1 valor de A (não existe outro)

Representa atributo B

somente

único

valor

um

do

Normalização • Cliente {nro_cliente, nome, endereço} – nro_cliente -> {nome, endereço} • PeçasPedido

Normalização

Cliente {nro_cliente, nome, endereço}

nro_cliente ->{nome, endereço}

nome, endereço} – nro_cliente -> {nome, endereço} • PeçasPedido {nro_pedido, nro_peça, qtidade_comprada,

PeçasPedido

{nro_pedido,

nro_peça,

qtidade_comprada, preço_cotado}

{nro_pedido, nro_peça}

preço_cotado}

-> {qtidade_comprada,

Normalização • Se duas linhas da tabela Clientes tiverem o mesmo valor de nro_cliente, então

Normalização

Normalização • Se duas linhas da tabela Clientes tiverem o mesmo valor de nro_cliente, então elas

Se duas linhas da tabela Clientes tiverem o

mesmo valor de nro_cliente, então elas tem de ter o mesmo valor de nome e de endereço.

Não é válida uma tabela que tenha duas linhas que coincidem na(s) coluna(s) listadas antes

da seta (->), mas são diferentes em alguma

coluna listada depois da seta.

Normalização • É feita através da análise dos dados que compõem as estruturas utilizando o

Normalização

Normalização • É feita através da análise dos dados que compõem as estruturas utilizando o conceito

É feita através da análise dos dados que compõem as estruturas utilizando o conceito

chamado "Formas Normais (FN)".

As FN são conjuntos de restrições nos quais

os dados devem satisfazê-las.

Diz-se que a estrutura está na normalizada (seja na 1, 2 ou 3FN), se os dados que a

compõem satisfizerem as restrições definidas

para a etapa.

Normalização • Primeira Forma Normal • Uma entidade estará na 1FN, se e somente se,

Normalização

Normalização • Primeira Forma Normal • Uma entidade estará na 1FN, se e somente se, todos

Primeira Forma Normal

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.

Normalização • Passos a consolidação da 1FN: serem aplicados – Identificação da chave primária da

Normalização

Passos

a

consolidação da 1FN:

serem

aplicados

Identificação da chave primária da tabela.

Identificação

da

coluna

que

contem

repetidos e removê-las.

da coluna que contem repetidos e removê-las. para dados – Criação de uma nova tabela com

para

dados

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.

Normalização • Exemplo : considere a relação Empregado (Número Empregado, Nome do Empregado, Nome do

Normalização

Normalização • Exemplo : considere a relação Empregado (Número Empregado, Nome do Empregado, Nome do

Exemplo: considere a relação Empregado (Número Empregado, Nome do Empregado,

Nome do Departamento, Número do Gerente,

Nome do Gerente, Número do Projeto, Nome do Projeto, Dia de Início do Projeto, Número

de Horas Trabalhadas no Projeto)

Normalização • Para testarmos um dos atributos e ter certeza que este é atômico, podemos

Normalização

Normalização • Para testarmos um dos atributos e ter certeza que este é atômico, podemos efetuar

Para testarmos um dos atributos e ter

certeza que este é atômico, podemos efetuar uma pergunta conforme o exemplo abaixo:

Podemos ter outro Nome para o Projeto 1?

Podemos ter outra Data de Início para Projeto 1?

o

Podemos

ter

outro

Empregado

para

o

Projeto 1?

Normalização • Transformado em 1FN Empregados Num_Empregado Nome_Empregado Num_Departamento

Normalização

Transformado em 1FN

Empregados

Num_Empregado

Nome_Empregado

Num_Departamento

Nome_Departamento

Núm_Gerente

Nome_Gerente

Projeto

Num_Projeto

Nome_Projeto

Dia_Ini_Projeto

Num_Horas_Trab_Proj

Num_Empregado

Nome_Projeto Dia_Ini_Projeto Num_Horas_Trab_Proj Num_Empregado Fundamentos de Banco de Dados 02/04/2013
Normalização • Uma tabela está na 1FN, se e somente se, não possuir atributos multivalorados

Normalização

Normalização • Uma tabela está na 1FN, se e somente se, não possuir atributos multivalorados e

Uma tabela está na 1FN, se e somente

se, não possuir atributos multivalorados

e não contém tabelas aninhadas.

Problemas

Redundância;

Atualização de Dados (Anomalias).

Normalização • Segunda Forma Normal • Uma entidade está na 2FN, se e somente se,

Normalização

Normalização • Segunda Forma Normal • Uma entidade está na 2FN, se e somente se, estiver

Segunda Forma Normal

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.

Normalização • Passos a consolidação da 2FN: serem aplicados para – Identificar colunas que não

Normalização

Passos

a

consolidação da 2FN:

serem

aplicados

• Passos a consolidação da 2FN: serem aplicados para – Identificar colunas que não são funcionalmente

para

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

Normalização • Primeira Forma Normal – 1FN Empregados Num_Empregado Nome_Empregado Num_Departamento

Normalização

Primeira Forma Normal 1FN

Empregados

Num_Empregado

Nome_Empregado

Num_Departamento

Nome_Departamento

Num_Gerente

Nome_Gerente

Projeto

Num_Projeto

Nome_Projeto

Dia_Ini_Projeto

Num_Horas_Trab_Proj

Num_Empregado

Nome_Projeto Dia_Ini_Projeto Num_Horas_Trab_Proj Num_Empregado Fundamentos de Banco de Dados 02/04/2013
Normalização • Transformado em 2FN Empregados Num_Empregado Nome_Empregado Num_Departamento

Normalização

Transformado em 2FN

Empregados

Num_Empregado

Nome_Empregado

Num_Departamento

Nome_Departamento

Num_Gerente

Nome_Gerente

Projeto

Num_Projeto

Num_Empregado

Nome_Gerente Projeto Num_Projeto Num_Empregado Detalhes Projeto Num_Projeto Nome_Projeto

Detalhes Projeto

Num_Projeto

Nome_Projeto

Dia_Ini_Projeto

Num_Horas_Trab_Proj

Normalização • Maior independência de dados (não há mais repetição de empregados por projeto, por

Normalização

Normalização • Maior independência de dados (não há mais repetição de empregados por projeto, por exemplo);

Maior independência de dados (não há

mais repetição de empregados por

projeto, por exemplo);

Redundâncias

e

anomalias:

dependências funcionais indiretas.

Normalização • Uma tabela está na 2FN, quando, além contém de dependências parciais estar 1FN,

Normalização

Normalização • Uma tabela está na 2FN, quando, além contém de dependências parciais estar 1FN, não

Uma tabela está na 2FN, quando, além

contém

de

dependências parciais

estar

1FN,

não

na

Normalização • Terceira Forma Normal • Uma entidade está na 3FN, se e somente se,

Normalização

Normalização • Terceira Forma Normal • Uma entidade está na 3FN, se e somente se, estiver

Terceira Forma Normal

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.

Normalização • Passos a consolidação da 3FN: serem – Identificar as colunas que aplicados para

Normalização

Normalização • Passos a consolidação da 3FN: serem – Identificar as colunas que aplicados para são

Passos

a

consolidação da 3FN:

serem

Identificar

as

colunas

que

aplicados

para

são

funcionalmente

dependentes das outras colunas não chave

Remover essas colunas

Normalização • Primeira Forma Normal – 1FN Empregados Num_Empregado Nome_Empregado Num_Departamento

Normalização

Primeira Forma Normal 1FN

Empregados

Num_Empregado

Nome_Empregado

Num_Departamento

Nome_Departamento

Num_Gerente

Nome_Gerente

Projeto

Num_Projeto

Nome_Projeto

Dia_Ini_Projeto

Num_Horas_Trab_Proj

Num_Empregado

Nome_Projeto Dia_Ini_Projeto Num_Horas_Trab_Proj Num_Empregado Fundamentos de Banco de Dados 02/04/2013
Normalização • Segunda Forma Normal – 2FN Empregados Num_Empregado Nome_Empregado Num_Departamento

Normalização

Segunda Forma Normal 2FN

Normalização • Segunda Forma Normal – 2FN Empregados Num_Empregado Nome_Empregado Num_Departamento

Empregados

Num_Empregado

Nome_Empregado

Num_Departamento

Nome_Departamento

Num_Gerente

Nome_Gerente

Projeto

Num_Projeto

Num_Empregado

Detalhes Projeto

Num_Projeto

Nome_Projeto

Dia_Ini_Projeto

Num_Horas_Trab_Proj

Normalização • Transformado em 3FN Empregados Num_Empregado Nome_Empregado Num_Departamento

Normalização

Transformado em 3FN

Empregados

Num_Empregado

Nome_Empregado

Num_Departamento

Departamentos

Num_Departamento

Nome_Departamento

Num_Gerente

Nome_Gerente

Num_Empregado

Projeto

Num_Projeto

Num_Empregado

Detalhes Projeto

Num_Projeto

Nome_Projeto

Dia_Ini_Projeto

Num_Horas_Trab_Proj

Num_Projeto Nome_Projeto Dia_Ini_Projeto Num_Horas_Trab_Proj Fundamentos de Banco de Dados 02/04/2013
Normalização • Maior independência de dados; • 3FN gera representações lógicas finais na maioria das

Normalização

Normalização • Maior independência de dados; • 3FN gera representações lógicas finais na maioria das vezes;

Maior independência de dados;

3FN gera representações lógicas finais na

maioria das vezes;

Redundâncias

anomalias:

e funcionais multivaloradas.

dependências

Normalização • Uma tabela está na 3FN, quando, além contém de dependências transitivas. estar 2FN,

Normalização

Normalização • Uma tabela está na 3FN, quando, além contém de dependências transitivas. estar 2FN, não

Uma tabela está na 3FN, quando, além

contém

de

dependências transitivas.

estar

2FN,

não

na

Normalização • Alguns problemas que podem ocorrer: – Chaves primárias omitidas ou incorretas – Atributos

Normalização

Normalização • Alguns problemas que podem ocorrer: – Chaves primárias omitidas ou incorretas – Atributos

Alguns problemas que podem ocorrer:

Chaves primárias omitidas ou incorretas

Atributos

relevantes

implicitamente

representados

Atributos irrelevantes, redundantes ou derivados

Exercício • Aplicar as Formas Normais cabíveis, nas questões abaixo. Você deve transformar os esquemas

Exercício

Exercício • Aplicar as Formas Normais cabíveis, nas questões abaixo. Você deve transformar os esquemas abaixo

Aplicar as Formas Normais cabíveis, nas questões

abaixo. Você deve transformar os esquemas abaixo em conjuntos de esquemas que estejam na 2NF, 3NF e, analisar sua normalização de acordo com suas

dependências funcionais.

a) Ordem_Compra (cod_ordem_compra, dt_emissão, cod_fornecedor, num_fornecedor,

endereço_fornecedor, cod_material (n vezes),

descrição_material (n vezes), qt_comprada (nvezes), vl_unitário (n vezes), vl_total_item (n vezes), vl_total_ordem).

Exercício b) Trabalhador (Cod_Trabalhador, Cod_Empresa, Nome_Empresa, Cod_Departamento, Nome_Departamento)

Exercício

Exercício b) Trabalhador (Cod_Trabalhador, Cod_Empresa, Nome_Empresa, Cod_Departamento, Nome_Departamento)

b)

Trabalhador

(Cod_Trabalhador,

Cod_Empresa,

Nome_Empresa, Cod_Departamento,

Nome_Departamento)

Nome_Trabalhador,

Dicionário de Dados • Um dicionário de dados (do inglês data dictionary ) é uma

Dicionário de Dados

Dicionário de Dados • Um dicionário de dados (do inglês data dictionary ) é uma coleção

Um dicionário de dados (do inglês data

dictionary) é uma coleção de metadados

que contêm definições e representações

de elementos de dados.

É

um

apenas

grupo

para

de

tabelas,

ou

habilitadas

consulta, que

leitura

mantém as seguintes informações:

Dicionário de Dados • Definição precisa sobre elementos de dados • Perfis de usuários, papéis

Dicionário de Dados

Dicionário de Dados • Definição precisa sobre elementos de dados • Perfis de usuários, papéis e

Definição precisa sobre elementos de dados

Perfis de usuários, papéis e privilégios

Descrição de objetos

Restrições de integridade

Stored procedures (pequeno trecho de programa de computador, armazenado em um SGBD, que pode ser

chamado freqüentemente por um programa principal) e

gatilhos

Estrutura geral da base de dados

Informação de verificação

Alocações de espaço

Índices

Dicionário de Dados • Ao contrário dos banco de dados e tabelas de dados, o

Dicionário de Dados

Dicionário de Dados • Ao contrário dos banco de dados e tabelas de dados, o dicionário

Ao contrário dos banco de dados e tabelas de

dados, o dicionário de dados é desprovido de

quaisquer dados.

Apenas uma lista das variáveis disponíveis no

conjunto de dados com as suas características.

A principal função é padronizar e unificar os

termos utilizados nas variáveis utilizadas nos

banco de dados.

Possibilita

uma

boa

membros da equipe.

comunicação

entre

os

Dicionário de Dados • Permite a consistência entre itens de dados através de diferentes tabelas.

Dicionário de Dados

Dicionário de Dados • Permite a consistência entre itens de dados através de diferentes tabelas. •

Permite a consistência entre itens de dados através de

diferentes tabelas.

Indicam como os elementos de dados são armazenados

em uma estrutura de computador de acordo com seu

tipo, ou seja, se são dados do tipo inteiro, caracter ou formato de data.

Não são glossários (termos e definições).

São gerados, normalmente, separados do Modelo de Dados visto que estes últimos costumam incluir

complexos relacionamentos entre elementos de dados.

Dicionário de Dados • Exemplo: Fundamentos de Banco de Dados 02/04/2013

Dicionário de Dados

Exemplo:

Dicionário de Dados • Exemplo: Fundamentos de Banco de Dados 02/04/2013
Dicionário de Dados • Exemplo: Fundamentos de Banco de Dados 02/04/2013
Dicionário de Dados • Analisando a tabela acima teremos: • Entidade: é o nome da

Dicionário de Dados

Dicionário de Dados • Analisando a tabela acima teremos: • Entidade: é o nome da entidade

Analisando a tabela acima teremos:

Entidade: é o nome da entidade que foi definida no MER. A entidade é uma pessoa, objeto ou lugar que será considerada como objeto pelo qual temos interesse em guardar informações a seu respeito.

Atributo: Os atributos são as características da entidade Cliente que desejamos guardar.

Classe: as classes podem ser: simples, composto, multivalorado e determinante. Simples indica um atributo normal. Composto indica que ele poderá ser dividido em outros atributos, como por exemplo, o endereço. Multivalorado é quando o valor do atributo poderá não ser

único e determinante é um atributo que será usado como chave, como CPF, Código do

cliente, etc.

Domínio: podem ser numérico, texto, data e boleano. Podemos chamar também de tipo do valor que o atributo irá receber. A definição desses tipos deve seguir um processo lógico, exemplo: nome é texto, salário é numérico, data de nascimento é data e assim por diante.

Tamanho: define a quantidade de caracteres que serão necessários para armazenar o seu

conteúdo. Geralmente o tamanho é definido apenas para atributos de domínio texto.

Descrição: é opcional e pode ser usado para descrever o que é aquele atributo ou dar informações adicionais que possam ser usadas futuramente pelo analista ou programador do sistema.

Dicionário de Dados Nome Descrição Tipo Tamanho Formato Restrições cliente Código que

Dicionário de Dados

Dicionário de Dados Nome Descrição Tipo Tamanho Formato Restrições cliente Código que

Nome

Descrição

Tipo

Tamanho

Formato

Restrições

cliente

Código que identifica unicamente os dados de um Cliente no Banco de Dados.

Inteiro

-

-

-

nome

Nome Completo do Cliente.

Texto

60

-

-

cpf

Número do Cadastro de Pessoa Física do Cliente.

Texto

11

999999999-99

O CPF deve ser válido

 

Endereço completo do Cliente. Deve incluir o nome da Rua,

       

endereco

Número, Complemento, Bairro e

Texto

100

-

-

CEP.

telefone

Telefone de Contato do Cliente. Pode ser o Número Residencial, Comercial ou Celular.

Texto

20

(99) 9999-9999

-

Exercícios • Escreva uma definição de DD das informações contidas na sua carteira de identidade.

Exercícios

Exercícios • Escreva uma definição de DD das informações contidas na sua carteira de identidade. Fundamentos

Escreva uma definição de DD das

informações contidas na sua

carteira de identidade.

Restrições de Integridade • Um dos objetivos primordiais de um SGBD é a integridade de

Restrições de Integridade

Restrições de Integridade • Um dos objetivos primordiais de um SGBD é a integridade de dados

Um dos objetivos primordiais de um SGBD é a integridade de dados.

Dizer que os dados de um banco de dados estão íntegros significa dizer que eles refletem corretamente a realidade representada pelo banco de dados e que são consistentes entre si e contém apenas dados válidos.

Para tentar garantir a integridade de um banco de dados os SGBD oferecem o mecanismo de restrições de integridade. Uma restrição de integridade é uma regra de consistência de

dados que é garantida pelo próprio SGBD.

No caso da abordagem relacional, costuma-se classificar as restrições de integridade nas seguintes categorias:

Restrições de Integridade Não pode ser negativo Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio
Restrições de Integridade Não pode ser negativo Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio

Restrições de Integridade

Não pode ser negativo

Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio Souza Programador -1000 5 20/03/1980 2 Ana
Emp#
Nome
Categoria
Salário
Dep#
Data_Nasc
1
Antônio Souza
Programador
-1000
5
20/03/1980
2
Ana Amaral
Programador
1000
6
22/03/1970
3
Analista
2000
7
12/04/1964
4
Carlos Silva
Operador
1
5
20/08/2060
7 12/04/1964 4 Carlos Silva Operador 1 5 20/08/2060 O campo não pode ser nulo Valor
7 12/04/1964 4 Carlos Silva Operador 1 5 20/08/2060 O campo não pode ser nulo Valor

O campo não pode ser nulo

Valor pequeno

Data Inválida

Restrições de Integridade • Suponha as seguintes regras na relação anterior: – O campo Nome

Restrições de Integridade

Restrições de Integridade • Suponha as seguintes regras na relação anterior: – O campo Nome não

Suponha as seguintes regras na relação anterior:

O campo Nome não pode ser nulo

O Salário tem que ser superior ao valor do salário mínimo nacional

A Data de nascimento tem que ser maior que 01/01/1920 e menor que

01/01/2000

Estas regras vão fazer parte da definição da tabela.

Quando um dado é inserido, alterado ou apagado o SGBD vai verificar se as regras definidas são respeitadas.

Restrições de Integridade • Integridade de domínio • Restrições deste tipo especificam que o valor

Restrições de Integridade

Restrições de Integridade • Integridade de domínio • Restrições deste tipo especificam que o valor de

Integridade de domínio

Restrições deste tipo especificam que o valor de um campo

deve obedecer a definição de valores admitidos para a coluna (o domínio da coluna).

Nos SGBD relacionais comerciais, é possível usar apenas

domínios pré-definidos (número inteiro, número real, alfanumérico de tamanho definido, data, ).

O usuário do SGBD não pode definir domínios próprios de sua

aplicação (por exemplo, o domínio dos dias da semana ou das

unidades da federação).

Restrições de Integridade Integridade de Domínio Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio Souza

Restrições de Integridade

Integridade de Domínio

Restrições de Integridade Integridade de Domínio Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio Souza
Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio Souza Programador 1000 5 20/03/1980 2 Ana
Emp#
Nome
Categoria
Salário
Dep#
Data_Nasc
1
Antônio Souza
Programador
1000
5
20/03/1980
2
Ana Amaral
Programador
1000
6
22/03/1970
3
José Costa
Analista
2000
7
12/04/1964
4
Carlos Silva
Operador
Mil reais
5
20/08/1980
O domínio do campo salário é
numérico , não aceita valores textuais
Restrições de Integridade • Integridade de Vazio • Este tipo de restrição especifica se os

Restrições de Integridade

Restrições de Integridade • Integridade de Vazio • Este tipo de restrição especifica se os campos

Integridade de Vazio

Este tipo de restrição especifica se os campos de uma coluna podem ou não ser vazios (se a coluna é obrigatória ou opcional).

Normalmente campos que compõem a chave primária sempre devem ser diferentes de vazio.

Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio Souza Programador 1000 5 20/03/1980 2 Ana
Emp#
Nome
Categoria
Salário
Dep#
Data_Nasc
1
Antônio Souza
Programador
1000
5
20/03/1980
2
Ana Amaral
Programador
1000
6
22/03/1970
3
Analista
2000
7
12/04/1964
4
Carlos Silva
Operador
1000
5
20/08/1980
O campo não
pode ser nulo
Fundamentos de Banco de Dados
02/04/2013
Restrições de Integridade • Integridade de Chave • Restrição que define que os valores da

Restrições de Integridade

Restrições de Integridade • Integridade de Chave • Restrição que define que os valores da chave

Integridade de Chave

Restrição que define que os valores da chave primária deve ser único. Impede que uma chave primária receba um valor NULL ou duplicado.

Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio Souza Programador 1000 5 20/03/1980 2 Ana
Emp#
Nome
Categoria
Salário
Dep#
Data_Nasc
1
Antônio Souza
Programador
1000
5
20/03/1980
2
Ana Amaral
Programador
1000
6
22/03/1970
3
José Costa
Analista
2000
7
12/04/1964
2
Carlos Silva
Operador
500
5
20/08/1980

Um campo que é chave primária não pode ter valores duplicados nem nulos

Restrições de Integridade • Integridade referencial – É a restrição que define que os valores

Restrições de Integridade

Integridade referencial

Restrições de Integridade • Integridade referencial – É a restrição que define que os valores dos

É 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.

Deve coincidir com a chave primária da sua tabela

"pai" a que a chave estrangeira se refere. Ou seja, não só deve existir o atributo (campo), como também, o valor referenciado.

Empregado Restrições de Integridade Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio Souza Programador

Empregado

Restrições de Integridade

Empregado Restrições de Integridade Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio Souza Programador
Emp# Nome Categoria Salário Dep# Data_Nasc 1 Antônio Souza Programador 1000 5 20/03/1980 2 Ana
Emp#
Nome
Categoria
Salário
Dep#
Data_Nasc
1
Antônio Souza
Programador
1000
5
20/03/1980
2
Ana Amaral
Programador
1000
6
22/03/1970
3
José Costa
Analista
2000
7
12/04/1964
2
Carlos Silva
Operador
500
5
20/08/1980
Departamento
Dep#
Nome
Local
5
Desenvolvimento
Porto Alegre
6
Testes
Gravataí
7
Qualidade
Cachoeirinha
Restrições de Integridade • As restrições dos tipos acima especificados devem ser garantidas automaticamente por

Restrições de Integridade

Restrições de Integridade • As restrições dos tipos acima especificados devem ser garantidas automaticamente por

As restrições dos tipos acima especificados devem ser garantidas automaticamente por um SGBD relacional.

Não deve ser o programador que escreverá procedimentos para

garantir o atendimento das Restrições.

Há outros tipos de restrições que não se encaixam em nenhuma das categorias acima e que normalmente não são garantidas pelo

SGBD. São as chamadas restrições semânticas. Alguns exemplos de

restrições deste tipo poderiam ser:

Um empregado do departamento denominado “Finanças” não pode ter a categoria funcional “Engenheiro”.

Um empregado não pode ter um salário maior que seu superior imediato.

• Exercícios Seja a tabela Cliente abaixo: Matrícula# Nome Telefone Tipo DataCadastro NumDependentes

Exercícios

Seja a tabela Cliente abaixo:

• Exercícios Seja a tabela Cliente abaixo: Matrícula# Nome Telefone Tipo DataCadastro NumDependentes

Matrícula#

Nome

Telefone

Tipo

DataCadastro

NumDependentes

123456

Setembrina Souza da Silva Santos Maciel

51

37742896

Usuário

20/02/2005

0

646512

Ana Amaral Luz

54 35782485

Convidado

14/12/2010

1

 

Josefa Costa Mendes

21

4756324v

Convidado

30/02/1987

-3

374256

Carlos Silva e Silva

11

87583627

Usuário

03/04/2013

2

974208

 

43

21121681

Usuário

01/01/1900

5

7126,85

Ueliton Manuel Silva Acosta

51

94878756

Administrador

05/06/2007

1

Exercícios • Verifique se as seguintes Restrições são atendidas e indique onde houver violação das

Exercícios

Exercícios • Verifique se as seguintes Restrições são atendidas e indique onde houver violação das mesmas:

Verifique se as seguintes Restrições são atendidas e indique onde houver violação das mesmas:

Um atributo Matrícula do tipo inteiro e não nulo;

Um atributo Nome do tipo texto de tamanho 30 e não nulo;

Um atributo Telefone do tipo texto de tamanho 10;

Um atributo Tipo do tipo texto de tamanho 10 com o seguinte domínio (valores válidos);

Usuário, Administrador, Convidado

Um atributo DataCadastro do tipo data, válida, não nulo e

com padrão a data do sistema;

Um atributo NumDependentes do tipo inteiro e positivo.

Obrigado ! Perguntas? Dúvidas? Fundamentos de Banco de Dados 02/04/2013

Obrigado!

Perguntas?

Dúvidas?

Obrigado ! Perguntas? Dúvidas? Fundamentos de Banco de Dados 02/04/2013