Felippe Lima Felippels.wordpress€¦ · Conceitual Lógico Homem Casa Mulher (0,1) (0,1) CPF Nome...

Post on 20-Jul-2020

9 views 0 download

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