Você está na página 1de 82

BANCO DE DADOS I

Prof. Oteniel Santos


BANCO DE DADOS I

MODELO RELACIONAL
RESTRIÇÃO DE INTEGRIDADE

Prof. Oteniel Santos


3
Antes...

É hora da revisão
4
CONCEITUAL LÓGICO FÍSICO

Modelo Entidade Modelo SQL


Relacionamento Relacional
LÓGICO

MODELO RELACIONAL
MODELO RELACIONAL
MODELO RELACIONAL
MODELO RELACIONAL

DADOS SÃO REPRESENTADOS EM TABELAS


As tabelas são chamadas de relações (teoria dos conjuntos)
As linhas são chamadas de tuplas (ou registros)
As colunas são chamadas de atributos
Não podem existir tuplas repetidas
MODELO RELACIONAL

CHAVE PRIMÁRIA
Atributo que identifica uma tupla de modo único
Não pode ser nula
Não pode ser repetir
Deve ter o menor tamanho possível
MODELO RELACIONAL

CHAVE ESTRANGEIRA
Sempre aponta para a chave primária de uma tabela
Pode ter valor nulo
Permite o relacionamento entre duas ou mais tabelas
MODELO RELACIONAL

CONTROLE DE INTEGRIDADE
São regras que tem o proposito de garantir
a integridade dos dados

• Integridade de Domínio
• Integridade de Chave
• Integridade Referencial
• Integridade Personalizada
REPRESENTAÇÃO EM

TABELAS

12
13 Cliente

Nome Sobrenome Cidade CPF Fone

Clientes
Nome Sobrenome Cidade CPF Fone
Maria Silva Novo Mundo 111.111.111-11 9999-1111
Gilmar Mendes Matupá 222.222.222-22 9999-2222
Maria Borges Matupá 333.333.333-33 9999-3333
Sérgio Chapelin Guarantã 444.444.444-44 9999-1111
Maria Silva Guarantã 555.555.555-55 9999-4444
Pedro Bial Peixoto 666.666.666-66 9999-5555
14 ENTIDADE

Entidade
Entidadee
Entidade
Entidade

Nome Sobrenome Cidade CPF Fone

ATRIBUTOS
15
Nome Sobrenome Cidade CPF Fone

Entidade

Entidade

Entidade

Entidade

Entidade
16

Nome Sobrenome Cidade CPF Fone

Entidade

Entidade

Entidade

Entidade

Entidade
DEFINIÇÕES
IMPORTANTES

17
18 Colunas são chamadas de
Atributos ou Campos

Nome Sobrenome Cidade CPF Fone


Maria Silva Novo Mundo 111.111.111-11 9999-1111
Gilmar Mendes Matupá 222.222.222-22 9999-2222
Maria Borges Matupá 333.333.333-33 9999-3333
Sérgio Chapelin Guarantã 444.444.444-44 9999-1111
Maria Silva Guarantã 555.555.555-55 9999-4444
Pedro Bial Peixoto 666.666.666-66 9999-5555
19 Linhas são conhecidas como
Tuplas ou Registros

Nome Sobrenome Cidade CPF Fone


Maria Silva Novo Mundo 111.111.111-11 9999-1111
Gilmar Mendes Matupá 222.222.222-22 9999-2222
Maria Borges Matupá 333.333.333-33 9999-3333
Sérgio Chapelin Guarantã 444.444.444-44 9999-1111
Maria Silva Guarantã 555.555.555-55 9999-4444
Pedro Bial Peixoto 666.666.666-66 9999-5555
20
Nome Sobrenome Cidade CPF Fone
Maria Silva Novo Mundo 111.111.111-11 9999-1111
Gilmar Mendes Por definição222.222.222-22
Matupá 9999-2222
Maria Não
Borges pode Matupá
haver tuplas333.333.333-33
duplicadas 9999-3333
Sérgio (uma linhas com
Chapelin os mesmos
Guarantã valores para
444.444.444-44 9999-1111
Maria todos os atributos
Silva Guarantãnuma mesma tabela)9999-4444
555.555.555-55
Pedro Bial Peixoto 666.666.666-66 9999-5555
21
Tabela é chamada de Relação
Relação de Clientes
Nome Sobrenome Cidade CPF Fone
Maria Silva Novo Mundo 111.111.111-11 9999-1111
Gilmar Mendes Matupá 222.222.222-22 9999-2222
Maria Borges Matupá 333.333.333-33 9999-3333
Sérgio Chapelin Guarantã 444.444.444-44 9999-1111
Maria Silva Guarantã 555.555.555-55 9999-4444
Pedro Bial Peixoto 666.666.666-66 9999-5555
22
Tipo do dado de cada coluna é chamado de Domínio

Nome Sobrenome Cidade CPF Fone


Maria Silva Novo Mundo 111.111.111-11 9999-1111
Gilmar Mendes Matupá 222.222.222-22 9999-2222
Maria Borges Matupá 333.333.333-33 9999-3333
Sérgio Chapelin Guarantã 444.444.444-44 9999-1111
Maria Silva Guarantã 555.555.555-55 9999-4444
Pedro Bial Peixoto 666.666.666-66 9999-5555
ATRIBUTOS CHAVE

23
REGRAS PARA CHAVE PRIMÁRIA
30 (Primary Key – PK)

#1 #2 #3
VALOR VALOR VALOR NÃO
EXCLUSIVO NÃO NULO REPETE
31 TIPOS DE CHAVE PRIMÁRIA

CHAVE CHAVE
NATURAL SUBSTITUTA
Campo presente na tabela Campo criado e controlado
com condições de ser pelo sistema para cumprir o
eleito chave primária papel de chave primária
32 TIPOS DE CHAVE

Chave
natural
codCliente
Nome Nome
Sobrenome Sobrenome
Cidade Cidade
CPF CPF
Fone Fone

1
Maria Maria
Silva Silva
Novo Mundo Novo Mundo
111.111.111-11 111.111.111-11
9999-1111 9999-1111

2
Gilmar Gilmar
Mendes Mendes
Matupá Matupá
222.222.222-22 222.222.222-22
9999-2222 9999-2222

3
Maria Maria
Borges Borges
Matupá Matupá
333.333.333-33 333.333.333-33
9999-3333 9999-3333

4
Sérgio Sérgio
Chapelin Chapelin
Guarantã Guarantã
444.444.444-44 444.444.444-44
9999-1111 9999-1111

5
Maria Maria
Silva Silva
Guarantã Guarantã
555.555.555-55 555.555.555-55
9999-4444 9999-4444

6
Pedro Pedro
Bial Bial
Peixoto Peixoto
666.666.666-66 666.666.666-66
9999-5555 9999-5555
33 TIPOS DE CHAVE

Chave
substituta
codCliente NomeNome Sobrenome
Sobrenome Cidade
Cidade CPF CPF Fone Fone

1 MariaMaria Silva Silva NovoNovo


MundoMundo 111.111.111-11 9999-1111
111.111.111-11 9999-1111

2 Gilmar
Gilmar Mendes
Mendes Matupá
Matupá 222.222.222-22 9999-2222
222.222.222-22 9999-2222

3 MariaMaria Borges
Borges Matupá
Matupá 333.333.333-33 9999-3333
333.333.333-33 9999-3333

4 Sérgio
Sérgio Chapelin
Chapelin Guarantã
Guarantã 444.444.444-44 9999-1111
444.444.444-44 9999-1111

5 MariaMaria Silva Silva Guarantã


Guarantã 555.555.555-55 9999-4444
555.555.555-55 9999-4444

6 PedroPedro Bial Bial Peixoto


Peixoto 666.666.666-66 9999-5555
666.666.666-66 9999-5555
34

codigo Nome Sobrenome Cidade CPF Fone

1 Maria Silva Novo Mundo 111.111.111-11 9999-1111


5
2 Gilmar Mendes Matupá 222.222.222-22 9999-2222
Nome
3 Maria Borges Matupá 333.333.333-33 9999-3333
Cidade
4 Sérgio Chapelin Guarantã 444.444.444-44 9999-1111
CPF
5 Maria Silva Guarantã 555.555.555-55 9999-4444
Fone
6 Pedro Bial Peixoto 666.666.666-66 9999-5555
35

codigo Nome Sobrenome Cidade CPF Fone

1 Maria Silva Novo Mundo 111.111.111-11 9999-1111


5
2 Gilmar Mendes Matupá 222.222.222-22 9999-2222
Nome
3 Maria Borges Matupá 333.333.333-33 9999-3333
Cidade
4 Sérgio Chapelin Guarantã 444.444.444-44 9999-1111
CPF
5 Maria Silva Guarantã 555.555.555-55 9999-4444
Fone
6 Pedro Bial Peixoto 666.666.666-66 9999-5555
36

codigo Nome Sobrenome Cidade CPF Fone

1 Maria Silva Novo Mundo 111.111.111-11 9999-1111


5
2 Gilmar Mendes Matupá 222.222.222-22 9999-2222
Nome MARIA SILVA
3 Maria Borges Matupá 333.333.333-33 9999-3333
Cidade GUARATÃ
4 Sérgio Chapelin Guarantã 444.444.444-44 9999-1111
CPF 555.555.555-55
5 Maria Silva Guarantã 555.555.555-55 9999-4444
Fone 9999-5555
6 Pedro Bial Peixoto 666.666.666-66 9999-5555
1.
POR QUÊ
RELACIONAL?

37
38 Sistema de vendas

codProf N N Codigo
nome Cliente compra Produto
sobrenome

CPF
Fone Cidade Descrição Preço Categoria
Data Quantidade
39

Tabela de Clientes
40

Tabela de Produtos
Clientes Produtos
41

Vendas
Cliente Produto
Clientes Produtos
42

Cliente Produto Data Quantidade


Clientes Produtos
43

Data Qtde Cliente Produto

04/04/2019 2 5 5

10/04/2019 10 3 1

10/04/2019 5 2 1

08/04/2019 1 4 3
Relacionamento entre tabelas é
caracterizado pela troca de chaves
entre elas.

44

45

Clientes Vendas Produto


PK Codigo FK CodCliente PK Codigo
Nome Data Descrição
Sobrenome Quantidade Preço
Cidade FK CodProduto Categoria
CPF
Fone
CHAVE PRIMÁRIA

(Primary Key – PK)

46
47 CHAVE PRIMÁRIA

Uma chave primária é uma coluna ou uma


combinação de colunas cujos valores distinguem
uma linha das demais dentro de uma tabela
É um atributo (campo) da tabela que permite a
identificação de forma única dos registros.
Evita que haja registros duplicados na tabela
Pode ser formada por um (chave primária simples)
ou por vários campos (chave primária composta).
48
Uma chave primária pode ser simples ou composta
 Simples – formada por uma só coluna
 Composta – Formada por duas ou mais colunas

Exemplo de Chave Simples


49
Exemplo de Chave Composta

Todo equipamento tem número de série único dentro de sua marca. Mas pode
existir caso em que um equipamento de outra marca tenha o mesmo número
de série. Para evitar problemas desse tipo, basta transformar Marca em chave
primária junto com Número de série.
50 Ao escolher os campos que irão definir uma chave
primária deve-se considerar o seguinte:

TAMANHO DO CHAVE MODIFICAÇÃO


CAMPO SUBSTITUTA O campo chave não deve
ser alterado
Campos menores são Preferencialmente usar
atualizados mais valores que são
É de preenchimento
rapidamente calculados pelo próprio
obrigatório;
sistema de
Em chaves compostas, gerenciamento de banco
devemos usar poucos de dados (auto
campos. incremento)
CHAVE ESTRANGEIRA
(Foreing Key – FK)

51
52 CHAVE ESTRANGEIRA

Uma chave estrangeira é uma coluna ou uma


combinação de colunas, cujos valores aparecem
necessariamente na chave primária de uma tabela.
A chave estrangeira é o mecanismo que permite a
implementação de relacionamentos em um banco
de dados relacional
FORMAS DE REPRESENTAÇÃO DO
MODELO RELACIONAL

53
54
Para representar esquemas relacionais serão usadas
duas notações: uma gráfica e outra textual acadêmica.

GRÁFICO TEXTO
55 MODO GRÁFICO
56 MODO TEXTO

Cliente (Codigo: inteiro,


nome:Texto(200),
tel: texto(12),
email: texto(50),
end:texto(200));

Venda(Codigo: inteiro,
Valor_total: real(5,2),
data: data,
CodCliente: inteiro)
CodCliente referencia cliente
57 MODO TEXTO

Cliente (Codigo: inteiro,


nome:Texto(200),
tel: texto(12),
email: texto(50),
Nome da tabela
end:texto(200));

Venda(Codigo: inteiro,
Valor_total: real(5,2),
data: data,
CodCliente: inteiro)
CodCliente referencia cliente
58 MODO TEXTO

Cliente (Codigo: inteiro,


nome:Texto(200),
tel: texto(12),
email: texto(50),
Chave primária
end:texto(200));

Venda(Codigo: inteiro,
Valor_total: real(5,2),
data: data,
CodCliente: inteiro)
CodCliente referencia cliente
59 MODO TEXTO

Cliente (Codigo: inteiro,


nome:Texto(200),
tel: texto(12),
email: texto(50),
end:texto(200));
Chave
Venda(Codigo: inteiro, estrangeira
Valor_total: real(5,2),
data: data,
CodCliente: inteiro)
CodCliente referencia cliente
RESTRIÇÕES DE INTEGRIDADE

60
61
Restrições de integridade são um conjunto de regras para
garantir que os dados estejam e permaneçam íntegros no banco.
Um banco íntegro reflete corretamente a realidade.
Uma das principais vantagens de se trabalhar com SGBD’s é que,
por padrão, eles já impõem ao programador suas regras. Mesmo
que se queira burlar uma regra ele não permite que isso
aconteça.
62

Integridade Integridade de Integridade de Integridade


de Domínio Campo Nulo Chave Primária Referencial
INTEGRIDADE DE DOMÍNIO

63
64
DOMÍNIO
É um conjunto de valores permitidos para um determinado campo
Exemplo domínios predefinidos:
 Inteiro (11)
 Texto(50)
Exemplos domínios personalizados
 notasAlunos – números reais de 0 a 10
 Idade – numero inteiro maior que 0
 Status – texto “A” (para ativo) e “I” (inativo)
 ETC.
65
INTEGRIDADE DE DOMÍNIO
Zela pelos valores ideais e necessários para um atributo. Para
isso definimos algumas regras de validação por meio de expressões
compostas de valores constantes.
 Não permitir um estoque negativo
 Impedir uma data de nascimento superior à data atual
 Não permitir que o valor de um produto seja negativo
 Notas dos alunos inferior a 0 e superior a 10
66 TIPOS DE DADOS DO MYSQL

Tipos Numéricos:
 Inteiros: TinyInt, Bit ou Bool, SmallInt, MediumInt, Integer, Int, BigInt.
 Ponto Flutuante: Float, xReal, Double, Decimal, Numérico.

Tipos de Data:
 Date, DateTime, TimeStamp, Time, Year.

Tipos de Cadeia:
 Char, VarChar, Blob, Text, Enum, Set.
67 TIPOS NUMÉRICOS
68 TIPOS DATA
69 TIPOS CADEIA
INTEGRIDADE DE CAMPO NULO

70
71
Campo nulo
Nos bancos de dados relacionais, ao criar uma nova tabela é
preciso definir, para cada campo, se aceitará valores vazios ou não.
Ao adicionar um novo registro, se um campo estiver definido como
NOT NULL (não vazio), se tentar deixar esse campo em branco,
certamente receberá uma mensagem de erro.
INTEGRIDADE DE CHAVE PRIMÁRIA

72
73
Integridade de chave primária
Uma chave primária deve sempre ser criada como NOT NULL. Isso
quer dizer que jamais poderá ser adicionado um registro com o
valor de campo chave primária em branco. Além disso, o banco tem
outra restrição: ele não permite inserir valores duplicados em
chaves primárias.

Primary key
INTEGRIDADE REFERENCIAL

74
75
INTEGRIDADE REFERENCIAL
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 é o que garante a integridade referencial do modelo
relacional. Ou seja, ela garante que não se faça referência a valores
que não existam na base de dados.
76 Restrição ao inserir
VENDA CLIENTES
Cod. DATA CLIENTE Cod. Nome Tel End Tipo
1 21/03/2019 1 1 Maria Santos 111111111 Av. Cedro, 100 Física
2 10/04/2019 1 2 José Pereira 222222222 Rua Oliva, 400 Física
3 08/04/2019 5 3 João Gomes 333333333 Trav. Sipó, 10 Física

Ao adicionar uma nova venda na tabela, obrigatoriamente o


código do cliente inserido deve existir na tabela Cliente; caso
não exista será retornado um erro de chave estrangeira.
77 Restrição ao Deletar
VENDA CLIENTES
Cod. DATA CLIENTE Cod. Nome Tel End Tipo
1 21/03/2019 1 1 Maria Santos 111111111 Av. Cedro, 100 Física
2 10/04/2019 1 2 José Pereira 222222222 Rua Oliva, 400 Física
3 08/04/2019 3 3 João Gomes 333333333 Trav. Sipó, 10 Física

Ao tentar excluir um registro da tabela Cliente,


automaticamente o banco fará uma varredura na tabela Venda
para verificar se não existe nenhuma referência a aquele
cliente. Caso tenha, ele retornará uma mensagem de erro.
78 Alterando o comportamento
Referencial

Você pode alterar como a integridade referencial se comporta:


 CASCADE
 DEFAULT
 NO ACTION
 RESTRICT
REGRAS DE CONVERSÃO 1:1

79
80 1:1

1 1
Cliente Contrato

Num Data
Cod Nome
81 1:1
1 1
Cliente Contrato
Cod Nome Num Data
82 1:1
1 1
Cliente Contrato
Cod Nome Num Data
83 1:1
1 1
Cliente Contrato
Cod Nome Num Data
REGRAS DE CONVERSÃO 1:N

84
85 1:1

1 N
Pedido Produtos

Cod CodProd Descrição


Data
86 1:N
Pedido 1 N Produtos
Cod Data
CodProd Descrição
87 1:N
Pedido 1 N Produtos
Cod Data
CodProd Descrição
88 1:N
Pedido 1 N Produtos
Cod Data
CodProd Descrição

Você também pode gostar