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

Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Programação com acesso a BD

Prof.: Clayton Maciel Costa

[email protected] 1

Page 2: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Processo de Projeto de Banco de

Dados

2

Levantamento e

Análise de Requisitos

Projeto Conceitual

Projeto Lógico

(Mapeamento do

Modelo de Dados)

Projeto Físico

BD

Requisitos do

Banco de Dados

Esquema Conceitual

(Alto Nível)

Esquema Lógico

(Modelo do SGBD)

Catálogo do SGBD

Esquema

Interno

Minimundo

1

2

3

4

Page 3: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Projeto Conceitual: Modelo ER

3

• Modelo de dados ER

• Não é implementado por nenhum SBD;

• Utilizado como modelo conceitual para projeto de BDs:

• Ferramenta para a modelagem de BDs.

• Proposto por P. Chen em 1976;

�Princípio Básico:

�Representar dados através:

�Entidades;

�Relacionamentos entre as entidades;

�Atributos: propriedades de entidades ou relacionamentos.

Page 4: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Projeto Conceitual: Modelo ER

4

• 1976

O Dr. Peter Chen (visite bit.csc.lsu.edu/~chen/chen.html) propôs o modelo

Entidade-Relacionamento (ER) para projetos de banco de dados dando

uma nova e importante percepção dos conceitos de modelos de dados.

Assim como as linguagens de alto nível, a modelagem ER possibilita ao

projetista concentrar-se apenas na utilização dos dados, sem se preocupar

com estrutura lógica de tabelas.

Dr. Peter Chen, criador do modelo ER.

Page 5: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

5

Considere o BD chamado EMPRESA e seus requisitos.

• Organizada em departamentos:

• um nome único;

• um número único;

• um empregado que gerencia o departamento;

• a data de quando o empregado começou a gerenciar o departamento

deve ser registrada;

• um departamento pode ter varias localizações.

• Um departamento controla um número de projetos:

• cada qual com um nome e número únicos;

• uma única localização.

Aplicação Exemplo

Page 6: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

6

• Cada empregado:

• nome, identidade, endereço, salário, sexo, data nascimento;

• um empregado é assinalado a um departamento;

• pode trabalhar em diversos projetos, os quais não são

necessariamente controlados pelo mesmo departamento;

• o número de horas por semana que o empregado trabalha em cada

projeto e o supervisor direto de cada empregado;

• Registro para cada empregado:

• número de dependentes (para seguro);

• para cada dependente:

• primeiro nome, sexo, data de nascimento e relacionamento com

o empregado.

Aplicação Exemplo

Page 7: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

7

Aplicação ExemploEsquema Conceitual do BD EMPRESA

Page 8: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Entidades e Atributos

8

Entidade

• Representação abstrata de um objeto do mundo

real;

• Exemplos de entidades do mundo real:

• Objeto concreto:

• Um empregado, um carro, um estudante.

• Objeto abstrato:

• Uma empresa, uma conta bancária, uma disciplina.

• Conjunto de entidades (tipo de entidade):

• Entidades que apresentam características semelhantes;

• Exemplo:

• Estudantes, Empregados, Contas.

Page 9: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Entidades e Atributos

9

Atributos de uma entidade

• Propriedades que caracterizam uma entidade.

• Exemplos:• Atributos de empregados:

• matrícula, nome, endereço, rg, cpf, data-nasc, salário, lotação, data-

admissão.

• Atributos de estudantes:

• matrícula, nome, curso, rg, cpf, data-ingresso.

• A cada atributo de uma entidade deve estar associado um

valor.

Page 10: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Entidades e Atributos

10

Atributos de uma entidade• Atributos chave de uma entidade:

• Conjunto de atributos que identificam univocamente uma entidade

• Exemplo:• Matrícula é atributo chave para Estudante.

• Chave pode ser formada por vários atributos: chave composta• Exemplo:

• Numero e Nome são chaves compostas da entidade Departamento.

• Domínio de um atributo:• Conjunto de valores que podem ser atribuídos a um atributo para

cada entidade individualmente:

• Exemplo:• RG:Integer; Nome do Empregado:String.

Page 11: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Entidades e Atributos

11

Page 12: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Entidades e Atributos

12

Atributos de uma entidade• Tipos de atributos:

• Atributo atômico:• Atributo que não pode ser subdividido. Exemplo: Salário.

• Atributo composto:• Atributo formado por vários atributos. Exemplo: Endereço.

• Atributo monovalorado:• Atributo para o qual está associado um único valor. Exemplo: Nome.

• Atributo multivalorado:• Atributo para qual podem estar associados vários valores. Exemplo:

Para o atributo telefone podem estar associados vários valores, como telefone residencial, comercial e celular.

• Atributo derivado:• Atributo cujo valor é derivado com base no valor de um outro atributo

(atributo base). Exemplo: Atributo idade pode ser derivado do atributo data-nasc.

Page 13: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Entidades e Atributos

13

Page 14: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

14

Relacionamento

• Abstração que representa associações entre diferentes conjuntos de entidades.

• Exemplo:• Empregado John Smith trabalha para Departamento

pesquisa.

• Empregado Fred Brown gerencia Departamento pesquisa.

• Departamento pesquisa controla Projeto X.

Page 15: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

15

Tipo de Relacionamento

• Define um conjunto de associações entre n tipos de

entidade E1, E2,...,En

• Exemplo:

• Trabalha_para entre Empregado e Departamento

Page 16: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

16

Tipo de Relacionamento

• Formalmente, um tipo de relacionamento R é um conjunto

de (instâncias de) relacionamentos ri, onde cada ri associa n

(instâncias de) entidades (e1,...,en) e cada ej pertence a um

tipo de entidade Ej

• R ∈ E1 x E2 x ... x En

• ri = (e1, ..., en)

• Grau de um Tipo de Relacionamento

• Número de tipos de entidade participantes de um tipo de

relacionamento.

Page 17: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

17

Page 18: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

18

Page 19: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

19

Restrições sobre Relacionamento

• Limitam as possíveis combinações de entidades que podem

participar no conjunto de relacionamentos;

• Cardinalidade: número de instâncias de um tipo de

relacionamento do qual uma entidade pode participar;

• Participação: se a existência de uma entidade depende de seu

relacionamento com outra entidade através de um tipo de

relacionamento � parcial ou total:

• Exemplo: Todo empregado deve trabalhar p/ um departamento. (total)

• Exemplo: Nem todo empregado gerencia um departamento. (parcial)

• Cardinalidade + Participação � Restrições Estruturais

Page 20: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

20

Page 21: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

21

Page 22: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

22

Relacionamentos Recursivos

• Auto relacionamento

• Relacionamento envolvendo um único conjunto de entidades;

• Exemplo:

• Cada departamento possui vários supervisores:

• Responsáveis por um subconjunto de empregados do departamento.

• Modelagem do relacionamento entre empregado e supervisor:

• Um supervisor também é uma entidade do tipo Empregado;

• Relacionamento supervisiona.

Supervisiona

Empregado

1

1

2

2

11

Empregado desempenha dois papéis- é-supervisionado-por (1)- é-supervisor-de (2)

Page 23: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Relacionamentos

23

Page 24: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

24

Aplicação ExemploEsquema Conceitual do BD EMPRESA

Page 25: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

Modelo ER: Entidades

25

Entidade Fraca

• Entidade cuja existência depende de estar associada, via um relacionamento (relacionamento de identificação), com uma outra entidade (entidade forte);

• Exemplo:

• Considere o relacionamento dependência entre os conjuntos de entidades Empregado e Dependente.

• Dependente contém os dependentes dos empregados da empresa.

• A existência de um dependente Bárbara:

• Depende da existência de um empregado André e que

• Bárbara esteja relacionada a André através do relacionamento dependência.

• Uma entidade fraca é identificada

• Por estar relacionada com uma entidade forte:

• Pelo atributo chave da entidade forte.

• Atributos da própria entidade fraca:

• Chave parcial.

Page 26: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

26

Aplicação ExemploEsquema Conceitual do BD EMPRESA

Page 27: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

27

Modelo ER: Notação

Nome atributo

SímboloSímbolo RepresentaçãoRepresentação

Conjunto de entidades

Conjunto de entidades fracas

Conjunto de relacionamentos(relacionamento)

Relacionamento de identificação

Atributo

Page 28: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

28

Modelo ER: Notação

Nome atributo

SímboloSímbolo RepresentaçãoRepresentação

Atributo chave

Nome atributo Atributo derivado

Nome atributo*

Nome atributo

Nome atributo Nome atributo

Atributo multivalorado

Atributo composto

Page 29: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

29

Modelo ER: NotaçãoSímboloSímbolo RepresentaçãoRepresentação

E1 R E21 N

Cardinalidade 1:N

R E(min,max) Restrição estrutural de

participação de E em R

E1 R E2 Participação total de E2em R

Nome atributo Atributo chave parcial deuma entidade fraca

Page 30: Programação com acesso a BD - Professor Baesse · 2 2 1 1 Empregado desempenha dois papéis - é-supervisionado-por (1) - é-supervisor-de (2) Modelo ER: Relacionamentos 23. 24

FIM

30