RELACIONAL
Modelo Relacional
Banco de Dados Relacional
=
consiste em uma coleção de tabelas
ou relações, cada uma das quais
com um nome único.
Banco de Dados Relacional
=
consiste em uma coleção de tabelas
ou relações, cada uma das quais
3
Tabelas
Conjunto não ordenado de linhas (tuplas);
Cada linha é composta por uma série de campos (valor de atributo);
Cada campo é identificado por um nome de campo (nome de atributo);
O conjunto de campos iguais da tabela formam uma coluna
4
Modelo Relacional
Coluna (atributo) nome do campo(nome do atributo)
linha (tupla)
valor do campo (valor do atributo)
... ... ...
...
NoMatrícula Nome End. Residencial Cargo
01 João Av. 9 de julho,140 Diretor
02 José Rua das Flores, 35 Gerente
03 Maria Al. Casa Branca, 110 Escriturário
5
Chaves
Identificam as linhas de uma tabela e permitem o relacionamento entre linhas de várias tabelas. Podem ser:
⌧Chaves primárias; ⌧Chaves estrangeiras; e
⌧Chaves alternativas.
Chaves - Chave Primária
É uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. Podem ser:
⌧Chaves únicas; ou
⌧Chaves compostas.
7 CódigoEmp Nome CódigoDepto
E3 Paulo D1 E1 Luciana D2 E2 Antonio D1 E4 Lucia D3
Chave Única
CódigoEmp NumDepend Nome Tipo
E1 01 Luis Filho E1 02 Marta Esposa E2 01 Ana Esposa E2 02 Carlos Filho
Chave Composta
8Chaves - Chave Estrangeira
É uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela. Permite a implementação do relacionamento em um banco de
dados relacional
9 CódigoEmp Nome CódigoDepto
E3 Paulo D1 E1 Luciana D2 E2 Antonio D1 E4 Lucia D3 CodigoDepto Nome D1 Compras D2 Vendas D3 Engenharia Chave Estrangeira
Chaves - Chave Estrangeira
Restrições:
⌧Quando for incluída uma nova linha na tabela que contém a
chave estrangeira;
⌧Quando for alterado o valor da chave primária referenciada
pela chave estrangeira;
⌧Quando for alterado o valor de uma chave estrangeira;
⌧Quando for excluída uma linha da tabela que contém a chave
primária referenciada pela chave estrangeira;
11
Chaves - Chave Estrangeira dentro da própria tabela
CodigoEmp Nome Codi goDepto CodEmpGerente
E3 Pedro D1 __
E2 Lucas D1 E3
E1 Marisa D3 E3
Chave estrangeira referencia chave primária na
própria tabela
12
Modelo Relacional
Chaves - Chave Alternativa
Quando mais de uma coluna podem servir para distinguir uma linha das demais, uma é escolhida chave primária e as demais são denominadas chaves alternativas.
CodigoEmp Nome CodigoDepto CPF E3 Pedro D1 132.121.331-20 E2 Lucas D1 876.346.235-90 E1 Marisa D3 312.692.451-78
13
Domínios
Conjunto de valores ( alfanuméricos, numéricos...) que os campos de uma determinada coluna podem assumir. Ex:
⌧números de salas de aula [o conj.de números de 1 a 150,
inteiros do formato 999]
⌧nomes de alunos [o conj.de nomes possíveis de pessoas, formato A(50)]
⌧códigos de disciplinas [o conj.de 3 letras seguidos de um traço
e de 3 dígitos; formato AAA-999]
Modelo Relacional
Domínios
Podem ser:
⌧obrigatórios : não são admitidos valores vazios para as colunas.
⌧Opcionais : podem aparecer valores vazios para as colunas. Normalmente, chaves primárias são obrigatórias.
15
Restrições de Integridade
Integridade dos dados de
um Banco de Dados
=
os dados refletem corretamente a
realidade representada pelo
banco de dados e são
consistentes entre si
Integridade dos dados de
um Banco de Dados
=
os dados refletem corretamente a
realidade representada pelo
banco de dados e são
consistentes entre si
16
Modelo Relacional
Restrições de Integridade
Regras de consistência de dados que é garantida pelo próprio SGBD:
⌧Integridade de Domínio; ⌧Integridade de Vazio; ⌧Integridade de Chave; e
17
Restrições de Integridade
Integridade de Domínio: especificam que o valor de um campo deve obedecer a definição dos valores admitidos para a coluna. Integridade de Vazio: através deste tipo de restrição é
especificado se os campos de uma coluna podem ou não ser vazios ( se a coluna é obrigatória ou opcional).
Modelo Relacional
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: define que os valores dos campos que
aparecem em uma chave estrangeira devem aparecer na chave primária da tabela referenciada.
19
Restrições de Integridade
Restrições Semânticas: não são automaticamente controladas pelo SGBD; o programador deve escrever procedimentos que garantam tais integridades. Ex:
⌧Um empregado não pode ter um salário maior que seu superior
imediato;
20
Modelo Relacional
Especificação de Banco de Dados Relacional
Chamada de Esquema do Banco de Dados, deve conter no mínimo:
⌧Tabelas que formam o banco de dados; ⌧Colunas que as tabelas possuem; e ⌧Restrições de integridade.
21
Esquema do Banco de Dados
NOMETABELA (nomes das colunas)
<nome da coluna ch. estrangeira> referencia <nome da tabela>
Ex:
DEPARTAMENTO (CodigoDepto, Nome)
EMPREGADO (CodigoEmp, Nome, CodigoDepto) CodigoDepto referencia DEPARTAMENTO
Mapeamento entre Modelos
Engenharia Reversa de BD Relacional Projeto Lógico de BD Relacional Modelo ER ( nível conceitual) Modelo Relacional ( nível lógico)
23
Regras:
obter um banco de dados que permita a eficiência das instruções de consulta e alteração do banco; e
obter um banco de dados simplificado, no que diz respeito ao desenvolvimento e manutenção das aplicações.
24
Para isso:
Evitar junções: ter os dados necessários a uma consulta em uma única linha;
Diminuir o número de chaves:
Cliente (CodCliente, Nome, Endereço, CEP,Telefone) Ou
Cliente (CodCliente, Nome)
ClienteEnder (CodCliente, Endereco, CEP, Telefone) CodCliente referencia Cliente
Evitar campos opcionais :
CGC – Nome Fantasia CPF - RG
25
Passos para a transformação de um modelo ER para o
modelo Relacional:
tradução inicial de entidades e respectivos atributos; tradução de relacionamentos e respectivos atributos.
Mapeamento das Entidades
Cada entidade é traduzida para uma tabela.
Cada atributo da entidade define uma coluna da tabela.
Os atributos identificadores da entidade correspondem às colunas
que compõem a chave primária da tabela.
Mapeamento ER - Relacional
CLIENTE CódigoNome
Data Nascimento Endereço
27
Mapeamento dos Nomes de atributos
Nomes de Colunas devem ser curtos;
Nomes de colunas não devem conter espaços em branco; Não é necessário utilizar o nome da tabela para compor o nome
de uma coluna, com exceção da chave primária. Exemplo:
Nome do Cliente NomeCliente Nome
Codigo do Cliente Codigo CodigoCliente
CodCliente CodigoCli
28
Mapeamento dos Relacionamentos : determinado pelas cardinalidades mínima e máxima das entidades envolvidas nos relacionamentos.
Três possibilidades:
⌧tabela própria: relacionamentos n para n;
⌧coluna (s) adicional (is) dentro de uma das tabelas :
relacionamentos n para 1 ou 1 para n; e
⌧fusão das tabelas relacionadas em uma só : relacionamentos 1 para
1.
29
Mapeamento Relacionamentos – 1:1
quando as duas entidades tem participação opcional
Inserção dos atributos em uma das tabelas
HOMEM MULHER Nome Código (0,1) (0,1) Código Nome Data Regime Casamento
Mapeamento Relacionamentos – 1:1
Dentro da Entidade Mulher
Mulher ( CodigoMul, Nome CodigoHom, Data, Regime) CodigoHom referencia Homem
Homem (CodigoHom, Nome)
Criar uma tabela para Casamento
Mulher ( CodigoMul, Nome Homem (CodigoHom, Nome)
Casamento (CodigoMul, CodigoHom, Data, Regime)
31
Mapeamento Relacionamentos – 1:1
quando uma entidade tem participação opcional e a outra obrigatória
Fusão das tabelas correspondentes as duas entidades
CORRENTISTA CARTÃO MAGNÉTICO Nome Código (0,1) (1,1)
Código Data Expedição
possui
32
Mapeamento Relacionamentos – 1:1
Todos os atributos em uma só tabela (Correntista)
Correntista (CodCorrent, Nome, CodCartao, DataExp) Manter as duas tabelas
Correntista (CodCorrent, Nome)
Cartao (CodCartao, DataExp, CodCorrent) CodCorrent referencia Correntista
33
Mapeamento Relacionamentos – 1:1
quando ambas entidades tem participação obrigatória
Fusão das tabelas correspondentes às duas entidades
CONFERENCIA COMISSÃO Nome Código (1,1) (1,1) Endereco Organizada por Data
Mapeamento Relacionamentos – 1:1
Todos os atributos em uma só tabela (Conferência) Conferência (CodConf, Nome, Data, EnderComisOrg)
Mapeamento ER - Relacional
DIRETOR DEPARTAMENTO Nome Código (1,1) (1,1) Codigo Nome Dirige?
35
Mapeamento Relacionamentos – 1:n
Adição de colunas à uma das tabelas Edifício (CodigoEdif, Endereço)
Apartamento (CodigoEdif, NumeroAp, AreaAp) CodigoEdif referencia Edificio
EDIFÍCIO APARTAMENTOS Endereço Código (1,n) (1,1) Número Área contém 36
Mapeamento Relacionamentos – 1:n
Adição de colunas à uma das tabelas Cliente (CodigoCli, Nome)
Venda (NumNotaF, Data, CodigoCli)
CodigoCli referencia Cliente
Mapeamento ER - Relacional
CLIENTE VENDA Nome Código (0,n) (1,1) Número daNota Fiscal Data
37
Mapeamento Relacionamentos – n:n
Criação de um tabela própria para o relacionamento
Medico (CRM, Nome)
Paciente (CodPaciente, Nome)
Consulta (CRM, CodPaciente, Data, Hora, Diagnostico) CRM referencia Medico
CodPaciente referencia Paciente
MEDICO PACIENTE Nome CRM (1,n) (1,n) Código Nome atende Data Hora Diagnóstico
Exemplo 1
TIME TÉCNICOCIDADE localiza-se possui
PATROCINADOR patrocina Time 1 Time 2 realizado (0,n) (1,n) (0,n) (1,1) (1,1) (1,1) (1,n) (1,n) (1,1) (1,1) (0,n) TIME Código (identificador) nome ano de fundação nome do presidente endereço PATROCINADOR Código (identificador) razão social nome fantasia CIDADE Código (identificador) nome unidade federativa TÉCNICO Código (identificador) nome data de nascimento telefone residencial telefone celular JOGO número (identificador)
39 RECEITA MEDICA VENDA MEDICAMENTO PERFUMARIA FABRICANTE (1,1) (0,n) (0,n) (0,n) (0,n) (0,1) (0,n) (0,n)
Fabricante (CGC, Nome, Endereco) Medicamento (Numero,
NomeComercial,TipoEmbalagem, Quantidade,PreçoUnitario, Tarja, Formula)
Perfumaria (Numero, Tipo, Quantidade, PreçoUnitario) Venda (NumeroNota, Data,
NomeCliente)
ReceitaMedica (CRM, Numero, Data)
(1,1)