Felippe Lima Felippels.wordpress€¦ · Conceitual Lógico Homem Casa Mulher (0,1) (0,1) CPF Nome...
Transcript of Felippe Lima Felippels.wordpress€¦ · Conceitual Lógico Homem Casa Mulher (0,1) (0,1) CPF Nome...
Felippe Lima
Felippels.wordpress.com
Modelo Lógico
Abordagem de modelagem de dados utilizada
nos sistemas de gerenciamento de bancos de
dados do tipo relacional.
Modelagem a nível lógico.
2
Abordagem Relacional
Tabelas:
Compostas de:
Linhas;
Colunas; e
Chaves Primárias.
Relacionadas através de:
Chaves estrangeiras.
3
Banco de Dados Relacional
4
Terminologias
5
Tabelas
Linhas de uma tabela não estão ordenadas.
Valor do campo:
Atômico;
Monovalorado.
6
Características das Tabelas
Implementação do Relacionamento 1:1Conceitual
Lógico
Homem MulherCasa(0,1) (0,1)
CPF Nome CPF Nome
CPF Nome
111 Caio
222 Beto
333 Abel
CPF Nome
777 Ana
888 Lia
999 Bia
CPF_Homem
111
222
Homem
Mulher
CPF Nome
777 Ana
888 Lia
999 Bia
CPF Nome
111 Caio
222 Beto
333 Abel
CPF_Mulher
777
888
Homem
Mulher
Conceitual
Lógico
Homem MulherCasa(0,1) (1,1)
CPF Nome CPF Nome
CPF Nome
111 Caio
222 Beto
333 Abel
CPF Nome
777 Ana
888 Lia
999 Bia
CPF_Homem
111
222
Homem
Mulher
CPF Nome
777 Ana
888 Lia
999 Bia
CPF Nome
111 Caio
222 Beto
CPF_Mulher
777
888
Homem
Mulher
Implementação do Relacionamento 1:1
Conceitual
Lógico
Homem MulherCasa(0,1) (1,1)
CPF Nome CPF Nome
CPF Nome
111 Caio
222 Beto
333 Abel
CPF Nome
777 Ana
888 Lia
999 Bia
CPF_Homem
111
222
Homem
Mulher
CPF Nome
777 Ana
888 Lia
999 Bia
CPF Nome
111 Caio
222 Beto
CPF_Mulher
777
888
Homem
Mulher
Implementação do Relacionamento 1:1
10
Conceitual
Lógico
Homem MulherCasa(0,1) (1,1)
CPF Nome CPF Nome
CPF_H Nome_H
111 Caio
222 Beto
CPF_M Nome_M
777 Ana
888 Lia
999 Bia
Casal
Implementação do Relacionamento 1:1
Conceitual
Lógico
Homem MulherCasa(1,1) (1,1)
CPF Nome CPF Nome
CPF Nome
111 Caio
222 Beto
333 Abel
CPF Nome
777 Ana
888 Lia
999 Bia
CPF_Homem
111
222
Homem
Mulher
CPF Nome
777 Ana
888 Lia
999 Bia
CPF Nome
111 Caio
222 Beto
CPF_Mulher
777
888
Homem
Mulher
333
333 Abel 999
Implementação do Relacionamento 1:1
12
Conceitual
Lógico
Homem MulherCasa(1,1) (1,1)
CPF Nome CPF Nome
CPF_H Nome_H
111 Caio
222 Beto
333 Abel
CPF_M Nome_M
777 Ana
888 Lia
999 Bia
Casal
Implementação do Relacionamento 1:1
13
Implementação do Relacionamento 1:1
14
Conceitual
Pessoa EmpresaTrabalhaN 1
CPF Nome CNPJ Nome
CNPJ Nome
1A IBM
2B CA
3C Sun
CPF Nome
777 Ana
888 Lia
999 Bia
CNPJ_Empresa
1A
Empresa
Pessoa
3C
Lógico
Implementação do Relacionamento 1:n
15
Conceitual
Pessoa EmpresaTrabalha(0,N) (1,1)
CPF Nome CNPJ Nome
CNPJ Nome
1A IBM
2B CA
3C Sun
CPF Nome
777 Ana
888 Lia
999 Bia
CNPJ_Empresa
1A
Empresa
Pessoa
3C
X
Lógico
Implementação do Relacionamento 1:N
16
Conceitual
Pessoa EmpresaTrabalha(0,N) (1,1)
CPF Nome CNPJ Nome
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
Funcao
GP
Desenvolvedor
Testador
Implementação do Relacionamento 1:N
17
Implementação do Relacionamento 1:N
18
Conceitual
Pessoa DepartamentoAlocaçãoN N
CPF Nome Cod Nome
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
Implementação do Relacionamento N:N
19
Conceitual
Pessoa DepartamentoAlocacaoN N
CPF Nome Cod Nome
Cod Nome
D01 RH
D02 TI
D03 Adm
Departamento
Pessoa
CPF Nome
111 Caio
222 Beto
333 Abel
Alocacao
Lógico
Data
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
Implementação do Relacionamento N:N
20
Conceitual
Pessoa DepartamentoAlocacaoN N
CPF Nome Cod Nome
Cod Nome
D01 RH
D02 TI
D03 Adm
Departamento
Pessoa
CPF Nome
111 Caio
222 Beto
333 Abel
Alocacao
Lógico
Data
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
Salario
100,00
200,00
300,00
400,00
500,00
Implementação do Relacionamento N:N
21
Implementação do Relacionamento N:N
Conceito básico para estabelecer relações entre
as linhas da tabela;
No modelo relacional são consideradas as
chaves:
primárias;
alternativas; e
estrangeiras.
22
Chaves
• Coluna ou combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela.
23
� 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.
Chave Primária
24
� 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.
Chave Estrageira
25
� CódigoEmp na tabala Dependente é uma chave estrangeira em relação àtabela Empregado.
Chave Estrangeira
26
Conceitual
Pessoa DependentePossui1 N
CPF Nome NSeq Nome
CPF Nome
777 Ana
888 Lia
999 Bia
NSeq Nome
1 Luiz
2 Joao
1 Jose
CPF
777
Pessoa
Dependente
999
777
Lógico
Relacionamento Identificador
27
Conceitual
Pessoa DependentePossui1 N
CPF Nome NSeq Nome
CPF Nome
777 Ana
888 Lia
999 Bia
NSeq Nome
1 Luiz
2 Joao
1 Jose
CPF
777
Pessoa
Dependente
999
777
Lógico
Relacionamento Identificador
• 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.
• 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.
28
Validação Chave Estrangeira
29
Conceitual
Pessoa EmpresaTrabalha(0,N) (1,1)
CPF Nome CNPJ Nome
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
Validação Chave Estrangeira
• 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.
30
Chave Estrangeira(Observação)
• 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.
31
Chave Alternativa
• 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.
• 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.
32
Domínio e Valores Vazios
• É 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;– Integridade Referencial;– Integridade de Unicidade;
• São garantidas automaticamente pelo SGBD Relacional.
• O programador não precisa implementá-las.
33
Restrição de Integridade
• 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.
• Integridade de Chave:– Define que os valores da chave primária e alternativa devem ser
únicos.
• 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.
34
Restrição de Integridade
Existem outras restrições que não se encaixam nas anteriormente citadas, mas são necessárias para um BDR, são as restrições semânticas e precisam ser desenvolvidas pelos programadores.
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.
35
Restrições Semânticas
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;
Restrições de integridade.
36
Especificação de Banco de Dados
• 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.
• 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.
37
Especificação de Banco de Dados
38
Dependente ( NºDepen, CódigoEmp, Nome, Tipo, DataNasc )
CódigoEmp referencia Empregado
Empregado ( CódigoEmp, Nome, CódigoDepto, CategFunc )
Especificação de Banco de Dados
39
Requisitos
de Dados
Projeto Conceitual
Projeto Lógico
Projeto Físico
Coleta/Especificaçãode Requisitos
Requisitos
Funcionais
Análise Funcional
Projeto Funcional
Programação
Programa deaplicação de BDSGBD Programa de
aplicação de BDPrograma de
aplicaçãodados
eregras
MundoReal
Transformação de Modelos
40
Transformação de Modelos
41
OBJETIVOS DO PROJETO DE BANCOS DE DADOS
- boa performance;
- simplicidade de desenvolvimento;
- simplicidade de manutenção.
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.
Transformação de Modelos
42
Transformação de Modelos
43
Transformação de Modelos
44
Transformação de Modelos
45
Transformação de Modelos
46
Transformação de Modelos
47
Transformação de Modelos
48
Implementação de Relacionamento de Grau > 2
• Três formas de implementação:
1. Uma TABELA para toda a hierarquia.
2. Uma TABELA para cada entidade da hierarquia.
3. Uma TABELA para cada entidade especializada.
49
CPF Nome
Idioma CNH CRM
Implementação de Generalização
50
» Uma TABELA para toda a hierarquia
CPF Nome
Idioma CNH CRM
Conceitual Lógico
Empregado
CPF Nome Idioma CNH CRM Tipo
111 Ana -- -- -- PES
222 Caio -- -- -- PES
333 Lia Inglês -- -- SEC
444 Beto -- M43 -- MOT
555 João -- -- C32 MED
Implementação de Generalização
51
» Uma TABELA para cada entidade
da hierarquia
CPF Nome
Idioma CNH CRM
Empregado
Secretária
Motorista
Médico
Conceitual Lógico
CP Nome
111 Ana
222 Caio
333 Lia
444 Beto
555 João
CPF Idioma
333 Inglês
CPF CNH
444 M43
CPF CRM
555 C32
Implementação de Generalização
52
» Uma TABELA para cada
entidade especializada
CPF Nome
Idioma CNH CRM
Secretária
Motorista
Médico
ConceitualLógico
333 Lia Inglês
CPF Nome Idioma
CPF Nome CNH
444 Beto M43
CPF Nome CRM
555 João C32
Implementação de Generalização
• Carlos a. Heuser, Projeto de Banco de Dados. (4º edição). Instituto de Informática da UFRGS.
• Elmasri, R. & Navathe, Sistema de Banco de Dados (6º Edição) traduzido
• Professor Marcio de Carvalho Victorino.
Referências Bibliográficas