Buscar

Abordagem Relacional

Prévia do material em texto

Banco de DadosBanco de Dados
Abordagem Relacional
Professor Marcio Victorino – mcvictorino@uol.com.br
Abordagem RelacionalAbordagem RelacionalAbordagem RelacionalAbordagem Relacional
� Abordagem de modelagem de dados
utilizada nos sistemas de gerenciamento de
bancos de dados do tipo relacional.
� Modelagem a nível lógico.� Modelagem a nível lógico.
Professor Marcio Victorino 2
Banco de Dados RelacionalBanco de Dados RelacionalBanco de Dados RelacionalBanco de Dados Relacional
� Tabelas:
� Compostas de:
� Linhas;
� Colunas; eColunas; e
� Chaves Primárias.
� Relacionadas através de:
� Chaves estrangeiras.
Professor Marcio Victorino 3
TerminologiasTerminologiasTerminologiasTerminologias
Professor Marcio Victorino 4
TabelasTabelasTabelasTabelas
Professor Marcio Victorino 5
Características das TabelasCaracterísticas das TabelasCaracterísticas das TabelasCaracterísticas das Tabelas
� Linhas de uma tabela não estão ordenadas.
� Valor do campo:
� Atômico;
� Monovalorado.
Professor Marcio Victorino 6
Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1
Conceitual
Lógico
Homem MulherCasa
(0,1) (0,1)
CPF Nome CPF Nome
Lógico
CPF Nome
111 Caio
222 Beto
333 Abel
CPF Nome
777 Ana
888 Lia
999 Bia
CPF_Homem
111
222
Homem
Mulher
CPF Nome
111 Caio
222 Beto
333 Abel
CPF_Mulher
777
888
Homem
Mulher
CPF Nome
777 Ana
888 Lia
999 Bia
Professor Marcio Victorino 7
Conceitual
Lógico
Homem MulherCasa
(0,1) (1,1)
CPF Nome CPF Nome
Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1
CPF Nome
111 Caio
222 Beto
333 Abel
CPF Nome
777 Ana
888 Lia
999 Bia
CPF_Homem
111
222
Homem
Mulher
CPF Nome
111 Caio
222 Beto
CPF_Mulher
777
888
Homem
Mulher
CPF Nome
777 Ana
888 Lia
999 Bia
Professor Marcio Victorino 8
Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1
Conceitual
Lógico
Homem MulherCasa
(0,1) (1,1)
CPF Nome CPF Nome
CPF Nome CPF Nome CPF_MulherCPF Nome
111 Caio
222 Beto
333 Abel
CPF Nome
777 Ana
888 Lia
999 Bia
CPF_Homem
111
222
Homem
Mulher
CPF Nome
111 Caio
222 Beto
CPF_Mulher
777
888
Homem
Mulher
CPF Nome
777 Ana
888 Lia
999 Bia
Professor Marcio Victorino 9
Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1
Conceitual
Lógico
Homem MulherCasa
(0,1) (1,1)
CPF Nome CPF Nome
Lógico
CPF_H Nome_H
111 Caio
222 Beto
CPF_M Nome_M
777 Ana
888 Lia
999 Bia
Casal
Professor Marcio Victorino 10
Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1
Conceitual
Lógico
Homem MulherCasa
(1,1) (1,1)
CPF Nome CPF Nome
CPF Nome CPF Nome CPF_MulherCPF Nome
111 Caio
222 Beto
333 Abel
CPF Nome
777 Ana
888 Lia
999 Bia
CPF_Homem
111
222
Homem
Mulher
CPF Nome
111 Caio
222 Beto
CPF_Mulher
777
888
Homem
Mulher
333
333 Abel 999
CPF Nome
777 Ana
888 Lia
999 Bia
Professor Marcio Victorino 11
Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1
Conceitual
Lógico
Homem MulherCasa
(1,1) (1,1)
CPF Nome CPF Nome
Lógico
CPF_H Nome_H
111 Caio
222 Beto
333 Abel
CPF_M Nome_M
777 Ana
888 Lia
999 Bia
Casal
Professor Marcio Victorino 12
Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1
Professor Marcio Victorino 13
Implementação de Relacionamento 1:n
Conceitual
Pessoa EmpresaTrabalha
N 1
CPF Nome CNPJ Nome
Lógico
CNPJ Nome
1A IBM
2B CA
3C Sun
CPF Nome
777 Ana
888 Lia
999 Bia
CNPJ_Empresa
1A
Empresa
Pessoa
3C
Professor Marcio Victorino 14
Implementação de Relacionamento 1:n
Conceitual
Pessoa EmpresaTrabalha
(0,N) (1,1)
CPF Nome CNPJ Nome
Lógico
CNPJ Nome
1A IBM
2B CA
3C Sun
CPF Nome
777 Ana
888 Lia
999 Bia
CNPJ_Empresa
1A
Empresa
Pessoa
3C
X
Professor Marcio Victorino 15
Implementação de Relacionamento 1:n
Conceitual
Pessoa EmpresaTrabalha
(0,N) (1,1)
CPF Nome CNPJ Nome
Lógico
Funcao
CNPJ Nome
1A IBM
2B CA
3C Sun
CPF Nome
777 Ana
888 Lia
999 Bia
CNPJ_Empresa
1A
Empresa
Pessoa
3C
2B
Lógico
Funcao
GP
Desenvolvedor
Testador
Professor Marcio Victorino 16
Implementação de Relacionamento 1:nImplementação de Relacionamento 1:nImplementação de Relacionamento 1:nImplementação de Relacionamento 1:n
Professor Marcio Victorino 17
Implementação de Relacionamento n:n
Conceitual
Pessoa DepartamentoAlocacao
N N
CPF Nome Cod Nome
Lógico
Cod Nome
D01 RH
D02 TI
D03 Adm
Departamento
Pessoa
CPF Nome
111 Caio
222 Beto
333 Abel
Cod CPF
D01 111
D01 222
D03 222
Alocacao
Lógico
Professor Marcio Victorino 18
Implementação de Relacionamento n:n
Conceitual
Pessoa DepartamentoAlocacao
N N
CPF Nome Cod Nome
Lógico
Data
Cod Nome
D01 RH
D02 TI
D03 Adm
Departamento
Pessoa
CPF Nome
111 Caio
222 Beto
333 Abel
Alocacao
Cod CPF
D01 111
D01 222
D03 222
Data
D03 333
D01 111
10/10/1999
10/11/2000
10/12/2001
10/10/2002
10/10/2003
Professor Marcio Victorino 19
Implementação de Relacionamento n:n
Conceitual
Pessoa DepartamentoAlocacao
N N
CPF Nome Cod Nome
Lógico
Data
Salario
Cod Nome
D01 RH
D02 TI
D03 Adm
Departamento
Pessoa
CPF Nome
111 Caio
222 Beto
333 Abel
Alocacao
Lógico
Cod CPF
D01 111
D01 222
D03 222
Data
D03 333
D01 111
10/10/1999
10/11/2000
10/12/2001
10/10/2002
10/10/2003
Salario
100,00
200,00
300,00
400,00
500,00
Professor Marcio Victorino 20
Implementação de Relacionamento n:nImplementação de Relacionamento n:nImplementação de Relacionamento n:nImplementação de Relacionamento n:n
Professor Marcio Victorino 21
� Conceito básico para estabelecer relações
entre as linhas da tabela;
� No modelo relacional são consideradas as
chaves:
primárias;
ChavesChavesChavesChaves
� primárias;
� alternativas; e
� estrangeiras.
Professor Marcio Victorino 22
Chave PrimáriaChave PrimáriaChave PrimáriaChave Primária
� Coluna ou combinação de colunas cujos valores distinguem
uma linha das demais dentro de uma tabela.
� A coluna CódigoEmp é a chave primária desta tabela pois os
valores contidos em seus campos permitem distinguir uma
linha das demais linhas desta tabela.
Professor Marcio Victorino 23
Chave EstrangeiraChave EstrangeiraChave EstrangeiraChave Estrangeira
� Coluna ou combinação de colunas, cujos valores aparecem na chave
primária (candidata) de uma tabela do banco.
� Mecanismo que permite a implementação de relacionamentos em um
banco de dados relacional.
Professor Marcio Victorino 24
Chave EstrangeiraChave EstrangeiraChave EstrangeiraChave Estrangeira
� CódigoEmpna tabala Dependente é uma chave estrangeira
em relação à tabela Empregado.
Professor Marcio Victorino 25
Relacionamento IdentificadorRelacionamento IdentificadorRelacionamento IdentificadorRelacionamento Identificador
Conceitual
Pessoa DependentePossui
1 N
CPF Nome NSeq Nome
Lógico
CPF Nome
777 Ana
888 Lia
999 Bia
NSeq Nome
1 Luiz
2 Joao
1 Jose
CPF
777
Pessoa
Dependente
999
777
Lógico
Professor Marcio Victorino 26
Relacionamento IdentificadorRelacionamento IdentificadorRelacionamento IdentificadorRelacionamento Identificador
Conceitual
Pessoa DependentePossui
1 N
CPF Nome NSeq Nome
Lógico
CPF Nome
777 Ana
888 Lia
999 Bia
NSeq Nome
1 Luiz
2 Joao
1 Jose
CPF
777
Pessoa
Dependente
999
777
Lógico
Professor Marcio Victorino
27
� Quando da inclusão de uma linha na tabela que a contém:
� deve ser garantida a existência do valor da chave estrangeira na
tabela referenciada que contém a chave primária
respectiva.
� Quando da alteração do valor da chave estrangeira:
� deve ser garantida a existência do valor da chave estrangeira na
tabela referenciada que contém a chave primária respectiva.
Validação Chave EstrangeiraValidação Chave EstrangeiraValidação Chave EstrangeiraValidação Chave Estrangeira
tabela referenciada que contém a chave primária respectiva.
� Quando da exclusão de uma linha da tabela que contém a
chave primária referenciada pela chave estrangeira:
� deve ser garantida que na coluna chave estrangeira não apareça o
valor da chave primária excluída.
Professor Marcio Victorino 28
Validação Chave EstrangeiraValidação Chave EstrangeiraValidação Chave EstrangeiraValidação Chave Estrangeira
Conceitual
Pessoa EmpresaTrabalha
(0,N) (1,1)
CPF Nome CNPJ Nome
Lógico
CNPJ Nome
1A IBM
2B CA
3C Sun
CPF Nome
777 Ana
888 Lia
999 Bia
CNPJ_Empresa
1A
Empresa
Pessoa
3C
4D
Lógico
Professor Marcio Victorino 29
Chave Estrangeira (Observação)Chave Estrangeira (Observação)Chave Estrangeira (Observação)Chave Estrangeira (Observação)
� O termo chave estrangeira pode levar a crer que está
sempre referenciada a uma chave primária de outra tabela,
mas em certos casos ela pode estar referenciada a uma
chave primária da mesma tabela.
Professor Marcio Victorino 30
Chave AlternativaChave AlternativaChave AlternativaChave Alternativa
� EM certas situações mais de uma coluna ou combinação de colunas
servem para distinguir uma linha das demais dentro de uma tabela.Se
uma destas for escolhida como chave primária, as demais serão
chamadas de chaves alternativas.
� Não há qualquer diferença entre usar as CódigoEmp ou CIC como chave
primária.
Professor Marcio Victorino 31
� Quando uma tabela é criada pode ser definido, para cada
coluna, um conjunto de valores que os campos da
respectiva coluna podem assumir.
� Este conjunto de valores é conhecido como domínio da
coluna ou domínio do campo.
� Deve ainda, ser especificado se os campos da coluna
podem assumir vazios (null). Vazio significa que o campo
não assumiu nenhum valor do seu domínio.
Domínios e Valores VaziosDomínios e Valores VaziosDomínios e Valores VaziosDomínios e Valores Vazios
não assumiu nenhum valor do seu domínio.
� As colunas para as quais não são admitidos vazios são
chamadas de colunas obrigatórias.
� As colunas para as quais são admitidos vazios são
chamadas de colunas opcionais.
� Os SGBDR exigem que todas as colunas que compõem a
chave primária sejam obrigatórias.
� chave estrangeira pode conter coluna ou colunas opcionais.
Professor Marcio Victorino 32
� É uma regra de consistência de dados que é garantida pelo
próprio SGBD.
� Restrições de Integridade Básicas;
� Integridade de Domínio;
� Integridade de Vazio;
� Integridade de Chave;
Restrições de IntegridadeRestrições de IntegridadeRestrições de IntegridadeRestrições de Integridade
Integridade de Chave;
� Integridade Referencial;
� Integridade de Unicidade;
� Integridade de Entidade.
� São garantidas automaticamente pelo SGBD Relacional.
� O programador não precisa implementá-las.
Professor Marcio Victorino 33
� Integridade de Domínio:
� Define os valores que podem ser assumidos pelos
campos de uma coluna.
� Integridade de Vazio:
� Especifica se os campos de uma coluna podem ou não
serem vazios.
Restrições de IntegridadeRestrições de IntegridadeRestrições de IntegridadeRestrições de Integridade
serem vazios.
� Integridade de Chave:
� Define que os valores da chave primária e alternativa
devem ser únicos.
Professor Marcio Victorino 34
� Integridade Referencial:
� Define que os valores dos campos que aparecem numa
chave estrangeira devem aparecer na chave primária
(candidata) da tabela referenciada.
� Integridade de Unicidade:
� Define que o valor do campo ou campos são únicos.
Restrições de IntegridadeRestrições de IntegridadeRestrições de IntegridadeRestrições de Integridade
� Define que o valor do campo ou campos são únicos.
� Integridade de Entidade:
� Define que nenhum valor da chave primária pode ser
nulo.
Professor Marcio Victorino 35
� Restrições de Banco de Dados (Tabelas):
� Valores que determinado banco de dados tem permissão
para assumir.
� Restrições de RelVar (Atributos):
� Valores que determinada RelVar tem permissão para
assumir.
Categorias de Restrições (Date, p.231)Categorias de Restrições (Date, p.231)Categorias de Restrições (Date, p.231)Categorias de Restrições (Date, p.231)
assumir.
� Restrições de Atributo (Tipagem):
� Valores que determinada atributo tem permissão para
assumir.
� Restrições de Tipo (Domínio):
� Valores que constituem determinado tipo.
Professor Marcio Victorino 36
� Existem outras restrições que não se
encaixam nas acima citadas, mas são
necessárias para um BDR, são as restrições
semânticas e precisam ser desenvolvidas
pelos programadores.
Exemplos:
Restrições Semânticas (regras de negócio)Restrições Semânticas (regras de negócio)Restrições Semânticas (regras de negócio)Restrições Semânticas (regras de negócio)
� Exemplos:
� um empregado do Setor de Finanças não pode
ser Médico.
� um empregado não pode ter salário maior do
que seus chefes.
Professor Marcio Victorino 37
� A especificação do Banco de Dados
Relacional (BDR), ou esquema do BDR, deve
conter no mínimo:
� Tabelas que formam o BDR;
� Colunas que as tabelas possuem;
Especificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de Dados
� Colunas que as tabelas possuem;
� Restrições de integridade.
Professor Marcio Victorino 38
� Cada tabela é listada pelo seu nome.
� Após o nome da tabela e entre parêntesis são
listados os nomes das colunas, separados por
vírgula.
� A coluna ou colunas que contém a chave primária
são sublinhadas.
Especificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de Dados
são sublinhadas.
� Após a definição da tabela são listadas as
definições das chaves estrangeiras que aparecem
na tabela.
� Se a chave estrangeira é formada por várias
colunas, elas são declaradas separadas por
vírgulas.
Professor Marcio Victorino 39
Especificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de Dados
40
Dependente ( NºDepen , CódigoEmp , Nome, Tipo, DataNasc )
CódigoEmp referencia Empregado
Empregado ( CódigoEmp , Nome, CódigoDepto, CategFunc )
Professor Marcio Victorino 40
Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos
Requisitos
de Dados
Projeto Conceitual 
Coleta/Especificação
de Requisitos
Requisitos
Funcionais
Análise Funcional
Mundo
Real
Projeto Lógico
Projeto Físico
Projeto Funcional
Programação
Programa de
aplicação de BDSGBD
Programa de
aplicação de BD
Programa de
aplicação
dados
e
regras
Professor Marcio Victorino 41
Transformação deModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos
Professor Marcio Victorino 42
OBJETIVOS DO PROJETO DE BANCOS DE DADOS
- boa performance;
- simplicidade de desenvolvimento;
- simplicidade de manutenção.
Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos
PRINCÍPIOS PARA UMA BOA TRADUÇÃO
- evitar junções - ter os dados necessários a uma
consulta numa mesma linha;
- diminuir a repetição de chaves primárias; e
- evitar campos opcionais.
Professor Marcio Victorino 43
Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos
Professor Marcio Victorino 44
Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos
Professor Marcio Victorino 45
Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos
Professor Marcio Victorino 46
Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos
Professor Marcio Victorino 47
Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos
Professor Marcio Victorino 48
Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos
Professor Marcio Victorino 49
Implementação de Relacionamento com grau > 2Implementação de Relacionamento com grau > 2Implementação de Relacionamento com grau > 2Implementação de Relacionamento com grau > 2
Professor Marcio Victorino 50
� Três formas de implementação:
� Uma TABELA para toda a hierarquia.
� Uma TABELA para cada entidade da hierarquia.
� Uma TABELA para cada entidade especializada.
Implementação da GeneralizaçãoImplementação da GeneralizaçãoImplementação da GeneralizaçãoImplementação da Generalização
CPF Nome
Idioma CNH CRM
Professor Marcio Victorino 51
Uma TABELA para toda a hierarquiaUma TABELA para toda a hierarquiaUma TABELA para toda a hierarquiaUma TABELA para toda a hierarquia
CPF Nome
Conceitual Lógico
Empregado
CPF Nome Idioma CNH CRM Tipo
Idioma CNH CRM
111 Ana -- -- -- PES
222 Caio -- -- -- PES
333 Lia Inglês -- -- SEC
444 Beto -- M43 -- MOT
555 João -- -- C32 MED
Professor Marcio Victorino 52
Uma TABELA para cada entidade da hierarquiaUma TABELA para cada entidade da hierarquiaUma TABELA para cada entidade da hierarquiaUma TABELA para cada entidade da hierarquia
CPF Nome
Empregado
Conceitual Lógico
CPF Nome
111 Ana
222 Caio
333 Lia
444 Beto
Idioma CNH CRM
Secretária
Motorista
Médico
555 João
CPF Idioma
333 Inglês
CPF CNH
444 M43
CPF CRM
555 C32
Professor Marcio Victorino 53
Uma TABELA para cada entidade especializadaUma TABELA para cada entidade especializadaUma TABELA para cada entidade especializadaUma TABELA para cada entidade especializada
CPF Nome
Secretária
Motorista
Conceitual Lógico
333 Lia Inglês
CPF Nome Idioma
Idioma CNH CRM
Motorista
Médico
CPF Nome CNH
444 Beto M43
CPF Nome CRM
555 João C32 
Professor Marcio Victorino 54
FimFim
Professor Marcio Victorino 55

Continue navegando