banco de dados - professor baesse...observação: nome da chave 13 •chave primária: •pode...

39
Banco de Dados Prof.: Clayton Maciel Costa [email protected] 1

Upload: others

Post on 19-Jan-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

Banco de Dados

Prof.: Clayton Maciel Costa [email protected] 1

Page 2: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

Agenda

2

• Transformação entre Modelos

• Algoritmo de Mapeamento ER Relacional

Page 3: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

Abordagem ER para o projeto lógico de BD relacionais

3

Page 4: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

Transformações entre Modelos

5

Page 6: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

Transformações entre Modelos

6

Page 7: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

Exemplo de um diagrama ER

9

Page 10: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

a. Entidades Regulares (sem atributos multivalorados)

11

Page 12: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

b. Atributos Multivalorados

14

Page 15: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

c. Entidade Fraca

16

Page 17: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

d. Relacionamentos binários 1:1

19

Page 20: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

d.b. Relacionamentos binários 1:N

21

Page 22: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

d.c. Relacionamentos binários N:M

23

Page 24: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

d.d. Relacionamento N-ário

25

Page 26: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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

27

Page 28: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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

28

Page 29: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

e.b. Relações: subclasses

30

Page 31: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

e.b. Relações: subclasses

31

Page 32: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

e.c. Relação Única

33

Page 34: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

e.c. Relação Única

34

Page 35: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

e.c. Relação Única

35

•Vantagem: • Simplicidade.

•Desvantagem: • Valores nulos.

Page 36: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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

36

Page 37: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

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

37

•Vantagem: • Simplicidade.

•Desvantagens: • Valores nulos;

• Difícil evolução.

Page 38: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

Exercício em Sala Transforme o modelo ER abaixo no modelo R.

38

Page 39: Banco de Dados - Professor Baesse...Observação: Nome da Chave 13 •Chave primária: •Pode aparecer em outras tabelas na forma de chave estrangeira. •Recomendável: •Nomes

FIM

39