39
Programação com acesso a BD Prof.: Clayton Maciel Costa [email protected] 1

Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Programação com acesso a BD

Prof.: Clayton Maciel Costa

[email protected] 1

Page 2: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Agenda

2

• Transformação entre Modelos

• Algoritmo de Mapeamento ER ���� Relacional

Page 3: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Abordagem ER para o projeto lógico de BD relacionais

3

Page 4: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Transformações entre Modelos

4

• Uma vez definido o modelo conceitual, o

próximo passo é definir o modelo lógico;

• Uma alternativa: mapear as construções do

modelo conceitual para o lógico.

Page 5: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Transformações entre Modelos

5

Page 6: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Transformações entre Modelos

6

Page 7: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Transformações ER para Relacional

7

• Regras gerais:

• Aplicáveis à maioria dos casos;

• Há situações:

• Por exigências da aplicação, outros mapeamentos

são usados.

• Objetivos básicos:

• Bom desempenho;

• Simplificar o desenvolvimento.

Page 8: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Algoritmo de Mapeamento

8

a. Entidades regulares

b. Atributos multivalorados

c. Entidades fracas

d. Relacionamentos

a. Relacionamentos binários 1:1

b. Relacionamentos binários 1:N

c. Relacionamentos binários N:M

d. Relacionamentos N-ários

e. Hierarquias (Especializações/Generalizações)

Page 9: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Exemplo de um diagrama ER

9

Page 10: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

a. Entidades Regulares (sem atributos multivalorados)

10

• Entidade regular E� Relação R;

• Atributo atômico e composto em E� Coluna

em R;

• Atributo identificador em E� Chave primária

em R.

Page 11: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

a. Entidades Regulares (sem atributos multivalorados)

11

Page 12: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Observação: Nomes das Colunas

12

• Referenciados frequentemente em programas;

• Para diminuir o trabalho de programadores � manter os

nomes de colunas curtos;

• SGBD relacional: nome de uma coluna não pode conter

brancos;

• Nomes de colunas não necessitam conter o nome da

tabela

• Preferível usar o nome de coluna NOME a usar os nomes

de coluna NOMEPESS ou NOMEPESSOA

Page 13: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Observação: Nome da Chave

13

• Chave primária:

• Pode aparecer em outras tabelas na forma de chave

estrangeira.

• Recomendável:

• Nomes das colunas que compõem a chave primária:

sufixados ou prefixados com o nome ou sigla da

tabela na qual aparecem como chave primária;

• Exemplo: CodigoPess.

Page 14: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

b. Atributos Multivalorados

14

Page 15: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

b. Atributos Multivalorados

15

• Solução Alternativa:

• Quando possível, pode-se limitar a quantidade de

ocorrência do atributo multivalorado;

• Por exemplo: cada departamento tem no máximo

2 ramais.

Departamento (Ndept, NomeDept, Ramal1, Ramal2)

Page 16: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

c. Entidade Fraca

16

Page 17: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

d. Relacionamentos

17

a. Relacionamentos binários 1:1;

b. Relacionamentos binários 1:N;

c. Relacionamentos binários N:M;

d. Relacionamentos N-ários.

Page 18: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

d.a. Relacionamentos binários 1:1

18

• Seja as entidades E1 e E2:

• Escolher uma das tabelas, por exemplo E2, e incluir

como chave estrangeira em E2 a chave primária da

outra tabela (E1).

• Critério de escolha

• Entidade com participação total no relacionamento

• Atributos de relacionamentos devem ser incluídos

na tabela com chave estrangeira

Page 19: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

d. Relacionamentos binários 1:1

19

Page 20: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

d.b. Relacionamentos binários 1:N

20

• Seja as entidades E1 e E2:

• Identificar o lado N (suponha que seja E2);

• Incluir como chave estrangeira na tabela E2 a

chave primária da outra tabela (E1);

• Atributos de relacionamentos devem ser incluídos

na tabela com chave estrangeira.

Page 21: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

d.b. Relacionamentos binários 1:N

21

Page 22: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

d.c. Relacionamentos binários N:M

22

• Seja as entidades E1 e E2:

• Criar uma nova tabela auxiliar tab-aux para

representar o relacionamento;

• Incluir como chaves estrangeiras na tabela tab-aux

as chaves primárias de E1 e E2;

• Estes dois atributos comporão a chave primária de

tab-aux;

• Atributos de relacionamentos devem ser incluídos

na tabela tab-aux.

Page 23: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

d.c. Relacionamentos binários N:M

23

Page 24: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

d.d. Relacionamento N-ário

24

• Não são definidas regras específicas

• O relacionamento é transformado em uma entidade

• São aplicadas regras de implementação de

relacionamentos binários

• Nova entidade Rel

• Colunas = chaves primárias das tabelas relacionadas

Page 25: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

d.d. Relacionamento N-ário

25

Page 26: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e. Hierarquias

26

• Geralmente quatro opções:

• e.a. Relações : superclasse e subclasses;

• e.b. Relações : subclasses;

• e.c. Relação única;

• e.d. Relação única : atributos tipo.

Page 27: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.a. Relações: superclasse e subclasses

27

Page 28: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.a. Relações: superclasse e subclasses

28

Page 29: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.a. Relações: superclasse e subclasses

29

• Vantagem:

• Evita valores nulos.

• Desvantagem:

• Os dados de um único objeto estão distribuídos

várias tabelas. Precisa fazer a junção destas

tabelas para criar o objeto.

Page 30: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.b. Relações: subclasses

30

Page 31: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.b. Relações: subclasses

31

Page 32: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.b. Relações: subclasses

32

• Vantagens:

• Evita valores nulos;

• Todos os dados de um objeto estão em uma

única tabela.

• Desvantagem:

• Duplicação de relacionamentos com outras

entidades.

Page 33: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.c. Relação Única

33

Page 34: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.c. Relação Única

34

Page 35: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.c. Relação Única

35

• Vantagem:

• Simplicidade.

• Desvantagem:

• Valores nulos.

Page 36: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.d. Relação Única: atributos tipo

36

Page 37: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

e.d. Relação Única: atributos tipo

37

• Vantagem:

• Simplicidade.

• Desvantagens:

• Valores nulos;

• Difícil evolução.

Page 38: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

Exercício em SalaTransforme o modelo ER abaixo no modelo R.

38

Page 39: Programação com acesso a BD - Professor Baesse...Observação: Nome da Chave 13 • Chave primária: • Pode aparecer em outras tabelas na forma de chave estrangeira. • Recomendável:

FIM

39