Prof. Gilberto Braga de Oliveira Prof. Gilberto Braga de Oliveira
Tecnologias e Linguagens Tecnologias e Linguagens
para Banco
para Banco de Dados I de Dados I
Modelagem Lógica Modelagem Lógica
22
Tópicos:
Tópicos:
Modelo Lógico-Modelo Lógico-RelacionalRelacional Chaves e ÍndicesChaves e Índices
Conceito de chave no modelo relacionalConceito de chave no modelo relacional
Regras de integridade do modelo relacionalRegras de integridade do modelo relacional
Características do modelo relacionalCaracterísticas do modelo relacional
Derivação do Modelo EntidadeDerivação do Modelo Entidade--Relacionamento para o Relacionamento para o Modelo Lógico
Modelo Lógico--RelacionalRelacional
Efetivação lógica dos relacionamentosEfetivação lógica dos relacionamentos A expressão do relacionamentoA expressão do relacionamento
Valor NuloValor Nulo Exercício: EmpresaExercício: Empresa
3 3
Modelo Modelo Lógico
Lógico- -Relacional Relacional
Processo que visa criar Processo que visa criar vinculos lógicos vinculos lógicos entre entre os
os elementos internos elementos internos e e externos externos do banco de do banco de dados
dados
Vínculos lógicos:Vínculos lógicos:
Chaves e índicesChaves e índices
Elementos internos:Elementos internos:
Entidades e Relacionamentos que se tornarão tabelas;Entidades e Relacionamentos que se tornarão tabelas;
Elementos externosElementos externos
Sistemas e pessoas que precisarão acessar os registros das Sistemas e pessoas que precisarão acessar os registros das tabelas do banco de dados
tabelas do banco de dados
4 4
Modelo Lógico Modelo Lógico- -
Relacional Relacional
Chaves e Índices: Chaves e Índices:
Chave: item de busca, campo Chave: item de busca, campo que será que será empregado nas consultas à base de dados.
empregado nas consultas à base de dados.
Índice: Recurso físico, otimiza Índice: Recurso físico, otimiza a recuperação a recuperação de registros através de métodos
de registros através de métodos de acesso; de acesso;
Uma chave Uma chave é é um índice mas um índice não um índice mas um índice não é necessariamente uma chave.
é necessariamente uma chave.
55
Conceito de chave no Conceito de chave no
modelo relacional:
modelo relacional:
Chave Candidata Chave Candidata
Campo candidato a chave primária.Campo candidato a chave primária.
Chave Chave Primária Primária
AtributoAtributode uma tabela (entidade ou relacionamento de uma tabela (entidade ou relacionamento com atributos) que
com atributos) queidentifica um registro de maneira identifica um registro de maneira única.
única.
Chave Chave Estrangeira Estrangeira
CampoCampoeloeloentre uma tabelaentre uma tabelae outrae outra..
Chave Secundária Chave Secundária
Define duas chaves primárias na mesma tabela, Define duas chaves primárias na mesma tabela, usada para otimizar o acesso aos registros.
usada para otimizar o acesso aos registros.
6 6
Exemplo de Chave Exemplo de Chave
Candidata Candidata
567.890.123 567.890.123--4545 Rua Cinco, 03
Rua Cinco, 03 João da Silva
João da Silva 005
005
456.789.012 456.789.012--3434 Rua Dois, 05
Rua Dois, 05 João Barbosa
João Barbosa 004
004
345.678.901 345.678.901--2323 Rua Três, 04
Rua Três, 04 Maria Costa
Maria Costa 003003
234.567.890 234.567.890--1212 Rua Dois, 03
Rua Dois, 03 Maria dos Santos
Maria dos Santos 002
002
123.456.789 123.456.789--9090 Rua Hum, 02
Rua Hum, 02 João da Silva
João da Silva 001
001
#CPF#CPF Endereco
Endereco NomeNome
*CodCliente
*CodCliente
7 7
Exemplo 2 de Chave Exemplo 2 de Chave
Candidata Candidata
567.890.123 567.890.123--4545 Rua Dez, 11
Rua Dez, 11 Joana da Silva
Joana da Silva 01250125--22
456.789.012 456.789.012--3434 Rua Oito, 07
Rua Oito, 07 Joana Barbosa
Joana Barbosa 0988
0988--99
345.678.901 345.678.901--2323 Rua Nove, 10
Rua Nove, 10 Mário Costa
Mário Costa 0456
0456--77
234.567.890 234.567.890--1212 Rua Oito, 09
Rua Oito, 09 Mário dos Santos
Mário dos Santos 0315
0315--44
123.456.789 123.456.789--9090 Rua Seis, 07
Rua Seis, 07 Joana da Silva
Joana da Silva 0218
0218--22
#CPF#CPF Endereco
Endereco Médico
Médico
*#CRM
*#CRM
88
Exemplo de Chave Primária Exemplo de Chave Primária
(Primary ( Primary Key): Key):
1254 1254--85888588 Rua Cinco, 03
Rua Cinco, 03 João da Silva
João da Silva 005
005
56845684--65986598 Rua Dois, 05
Rua Dois, 05 João Barbosa
João Barbosa 004004
4587 4587--98659865 Rua Três, 04
Rua Três, 04 Maria Costa
Maria Costa 003
003
3256 3256--98569856 Rua Dois, 03
Rua Dois, 03 Maria dos Santos
Maria dos Santos 002
002
12341234--56785678 Rua Hum, 02
Rua Hum, 02 João da Silva
João da Silva 001001
Telefone Telefone Endereco
Endereco Nome
Nome
*CodCliente
*CodCliente
9 9
Exemplo Chave Estrangeira Exemplo Chave Estrangeira
(
(Foreign Foreign Key) Key)
4747 35 35 21 21 12 12 0707
*Cod*Cod
13:00 13:00 21/07/07 21/07/07 07890789--00
11:00 11:00 19/07/07 19/07/07 0234
0234--55
15:00 15:00 13/07/07 13/07/07 0345
0345--66
09:00 09:00 08/07/07 08/07/07 0234
0234--55
08:00 08:00 05/07/07 05/07/07 03450345--66
HrCons HrCons DtCons
DtCons CRMCRM
Consulta Consulta
Ortopedista Ortopedista AnaAna
07890789--00
Cardiologista Cardiologista Josefa
Josefa 0456 0456--77
Pediatra Pediatra Joana
Joana 0345 0345--66
Clínico Clínico Mário
Mário 02340234--55
Cardiologista Cardiologista Joana
Joana 0123-0123-44
Especialidade Especialidade Médico
Médico
*CRM
*CRM
Medico Medico
10 10
Exemplo de Chave Exemplo de Chave
Secundária Secundária
12 12 012 012
003 003
6 6 012
012 002
002
9 9 012
012 001
001
7 7 011 011
002 002
25 25 011
011 001
001
Quantidade Quantidade
*CodPedido
*CodPedido
*CodProduto
*CodProduto
1111
Regras de integridade do Regras de integridade do
Modelo Relacional Modelo Relacional
De integridade de identidade De integridade de identidade
Chave primária nãoChave primária nãopode conter valor nulo pode conter valor nulo ouou repetido
repetido
De integridade referêncial De integridade referêncial
Chave estrangeiraChave estrangeiradeve ter valor igualdeve ter valor igualao da ao da chave primária
chave primária(relacionada) (relacionada) ououigualiguala nuloa nulo.. Chave estrangeiraChave estrangeiraNÃO poderá ter um valor NÃO poderá ter um valor
diferente
diferenteda da chave primáriachave primáriarelacionada relacionada ee diferente
diferentede de nulonulo..
12 12
Características do Modelo Características do Modelo
Relacional Relacional
Uma tabela é acessível por qualquer campo Uma tabela é acessível por qualquer campo independente dele ser chave ou não.
independente dele ser chave ou não.
O relacionamento entre as tabelas não existe O relacionamento entre as tabelas não existe fisicamente ele é apenas lógico representado por fisicamente ele é apenas lógico representado por chaves.
chaves.
Uso de linguagens auto Uso de linguagens auto- -contidas e não contidas e não procedurais
procedurais
Ambiente relacional otimiza a forma de Ambiente relacional otimiza a forma de recuperar os dados.
recuperar os dados.
13 13
Derivação
Derivação do MER do MER para o para o Modelo Lógico
Modelo Lógico- -Relacional Relacional Mapeamento dos relacionamentos Mapeamento dos relacionamentos
Relacionamento Relacionamento 1:N 1:N
Tabela N Tabela N carrega campo de mesmo carrega campo de mesmo nome
nome da da chave primária chave primária da da tabela 1 tabela 1 e e que será
que será chave estrangeira chave estrangeira em em N N . .
Navegação incorporada: Via chave Navegação incorporada: Via chave estrangeira;
estrangeira;
1414
Derivação do
Derivação do MER MER para o para o Modelo
Modelo Lógico Lógico- -Relacional Relacional
Relacionamento N:N Relacionamento N:N
O relacionamento tornaO relacionamento torna--se uma tabela com se uma tabela com atributos (se houver) e identificadores das atributos (se houver) e identificadores das tabelas relacionadas.
tabelas relacionadas.
Navegação disjunta: Não modifica os registros Navegação disjunta: Não modifica os registros pré-pré-existentes. (N:N)existentes. (N:N)
Relacionamento 1:1 Relacionamento 1:1
Tabela especializada recebe a chave primária da Tabela especializada recebe a chave primária da tabela generalista.
tabela generalista.
Generalização/EspecializaçãoGeneralização/Especialização
Os subconjuntos tornam-Os subconjuntos tornam-se tabelas carregando o se tabelas carregando o identificador do conjunto ao qual pertencem identificador do conjunto ao qual pertencem
Prof. Gilberto Braga de Oliveira Prof. Gilberto Braga de Oliveira
Tecnologias e Linguagens Tecnologias e Linguagens
para Banco de Dados I para Banco de Dados I
Exercício Exercício
Modelo de Negócio: Empresa X
Modelo de Negócio: Empresa X
16 16
Exemplo: Empresa Exemplo: Empresa
Os funcionáriosOs funcionáriossão registrados pela matrículasão registrados pela matrícula,,nomenome,, telefone1
telefone1, , telefone2,telefone2,pelo departamento pelo departamento ondeondetrabalha, por trabalha, por um
um projetoprojetoque ele pode participar e pela que ele pode participar e pela datadatae prazoe prazode de alocação do funcionário no projeto;
alocação do funcionário no projeto;
OsOsvendedoresvendedoressão definidos pelo são definidos pelo percentual depercentual de comissão
comissão,,salário fixosalário fixoe o e o salário total salário total a receber que é o a receber que é o resultado da fórmula:
resultado da fórmula:
SalarioTotalSalarioTotal= (1 + = (1 + ComissaoComissao/100) * /100) * SalarioFixoSalarioFixo..
Cada vendedorCada vendedor“deve” “deve” serserum e somente umum e somente umfuncionáriofuncionário da empresa, enquanto um
da empresa, enquanto um funcionáriofuncionário“pode” “pode” serserum e um e somente um
somente umvendedor.vendedor.
1717
Modelagem
Modelagem Conceitual Conceitual
com Funcionario 1:1 com Funcionario 1:1 Total
Total Comissao
Comissao SalarioFixo SalarioFixo SalarioTotal SalarioTotal Vendedor
Vendedor
com
comVendedor 1:1Vendedor 1:1 Parcial Parcial Matricula
Matricula NomeNome Departamento Departamento Projeto Projeto DataAlocacao DataAlocacao PrazoAlocacao PrazoAlocacao Funcionario
Funcionario
Relacionamentos Relacionamentos Atributos
Atributos Entidade
Entidade
18 18
MER MER Exemplo
Exemplo Empresa Empresa
Funcionario
É
Vendedor 1
1 1 1
1 1
19 19
Modelagem lógica Modelagem lógica
1.
1. Procura por chaves candidatas Procura por chaves candidatas
Analisar cada um dos atributos das entidades e do Analisar cada um dos atributos das entidades e do relacionamento
relacionamento
Identificar o atributo que contempla a regra de Identificar o atributo que contempla a regra de integridade de identidade
integridade de identidade
O campo repete? Pode ser nulo?O campo repete? Pode ser nulo?
Se a resposta for Se a resposta for NÃONÃOpara as duas questões o para as duas questões o campo é chave candidata
campo é chave candidata
Marcar o campo identificado com Marcar o campo identificado com ##
2020
Modelagem lógica Modelagem lógica
com Funcionario 1:1 com Funcionario 1:1 Total
Total Comissao
Comissao SalarioFixo SalarioFixo AreaAtuacao AreaAtuacao Vendedor
Vendedor
comcomVendedor 1:1Vendedor 1:1 Parcial
Parcial
#Matricula
#Matricula Nome Nome Departamento Departamento Projeto Projeto Data Data Prazo Prazo Funcionario
Funcionario
Relacionamentos Relacionamentos Atributos
Atributos Entidade
Entidade
21 21
Modelagem lógica Modelagem lógica
2.
2. Promover Promover chaves chaves candidatas candidatas a a chaves primárias chaves primárias ou criá
ou criá- -las se necessário las se necessário
Toda tabela precisa ter chave primária ou chave Toda tabela precisa ter chave primária ou chave secundária
secundária
Se a tabela tem chave candidataSe a tabela tem chave candidata
Analisar tamanho e tipo de dados das chaves Analisar tamanho e tipo de dados das chaves candidatas
candidatas
Com o menor número de dígitos possível (Máximo 7 neste Com o menor número de dígitos possível (Máximo 7 neste curso)
curso)
Preferencialmente numéricoPreferencialmente numérico
SenãoSenão
Criar um campo artificial e marcar com Criar um campo artificial e marcar com **
22 22
Modelagem
Modelagem lógica lógica
com Funcionario 1:1 com Funcionario 1:1 Total
Total
*CodVendedor
*CodVendedor Comissao Comissao SalarioFixo SalarioFixo AreaAtuacao AreaAtuacao Vendedor
Vendedor
com
comVendedor 1:1Vendedor 1:1 Parcial
Parcial
*#Matricula
*#Matricula Nome Nome Departamento Departamento Projeto Projeto DataData Prazo Prazo Funcionario
Funcionario
Relacionamentos Relacionamentos Atributos
Atributos Entidade
Entidade
2323
Modelagem lógica Modelagem lógica
3.
3.
Definir Definir chaves estrangeiras chaves estrangeiras
Observar o grau Observar o grau dosdosrelacionamentosrelacionamentos Observar a regra para a criação de chave Observar a regra para a criação de chave
estrangeira de acordo com o grau:
estrangeira de acordo com o grau:
1:1 Chave primária da 1:1 Chave primária da entidade especializadaentidade especializadaé a é a mesma da
mesma da generalistageneralista
1:N 1:N Lado NLado Nrecebe campo chave estrangeira de mesmo recebe campo chave estrangeira de mesmo nome da chave primária do
nome da chave primária do lado 1lado 1
N:N N:N CrieCrieumaumaterceira tabela com as chaves terceira tabela com as chaves estrangeiras, estrangeiras, a partir das chaves primárias das tabelas relacionadas.
a partir das chaves primárias das tabelas relacionadas.
24 24
Modelo Modelo Lógico
Lógico- -Relacional Relacional
com Funcionario 1:1 com Funcionario 1:1 Total
Total
*Matricula
*Matricula Comissao Comissao SalarioFixo SalarioFixo AreaAtuacao AreaAtuacao Vendedor
Vendedor
com
comVendedor 1:1Vendedor 1:1 Parcial
Parcial
*#Matricula
*#Matricula NomeNome Departamento Departamento Projeto Projeto Data Data Prazo Prazo Funcionario
Funcionario
Relacionamentos Relacionamentos Atributos
Atributos Entidade
Entidade
25 25
Tabelas Tabelas
9090 21/05/08 21/05/08 Intranet
Intranet Vendas Vendas 89988998--99899989 56785678--90129012 Mário
Mário 045045
3030 17/05/08 17/05/08 Reciclagem Reciclagem Produção Produção 79977997--88908890 56785678--90129012 Joana
Joana 039039
60 60 21/06/08 21/06/08 Intranet
Intranet Vendas Vendas 8899
8899--00120012 3645
3645--67896789 Pedrina Pedrina 032 032
21/06/08 21/06/08 17/05/08 17/05/08 21/05/08 21/05/08 DtAlDtAl
60 60 90 90 30 30 PrazoAl PrazoAl
Reciclagem Reciclagem Produção Produção 7788
7788--99019901 3645
3645--67896789 Pedro
Pedro 021 021
Reciclagem Reciclagem Vendas
Vendas 8901
8901--23452345 1234
1234--56785678 Marisa Marisa 019 019
Reciclagem Reciclagem Produção Produção 7890
7890--12341234 1234
1234--56785678 João
João 001 001
Projeto Projeto Depto Depto Tel2Tel2 Tel1Tel1 NomeNome MatMat
805 805 700 700 15
15 045 045
660 660 600 600 10
10 032 032
960 960 800 800 20
20 019 019
SalTotal SalTotal SalFixo SalFixo Comissao Comissao Mat
Mat Vendedor Funcionário