• Nenhum resultado encontrado

Modelo Entidade – Relacionamento Aula 2

N/A
N/A
Protected

Academic year: 2019

Share "Modelo Entidade – Relacionamento Aula 2"

Copied!
62
0
0

Texto

(1)

Fundamentos de Bancos de

Dados

Modelo Entidade –

Relacionamento

(2)

2/62

Modelo ER

Objetivo

Estudar o modelo Entidade-Relacionamento; um modelo

conceitual amplamente difundido e utilizado pelos projetistas de bancos de dados.

• Principais tópicos

Introdução ao Modelo Entidade-RelacionamentoConceitos:

• Entidades e Atributos

• Atributos Compostos

• Atributos Multivalorados

• Atributos Derivados

Valores Nulos de Atributos

Tipos de Entidades

(3)

3/62

Modelo ER

• Principais tópicos (continuação)

• Relacionamentos e Tipos de Relacionamentos

• Graus de um Tipo de Relacionamento

• Relacionamento como um Atributo

• Papéis e Relacionamentos Recursivos

• Restrições sobre Tipos de Relacionamentos

– Razão de Cardinalidade

– Restrição de Participação

– Restrição Estrutural

• Atributo de Relacionamento

• Tipo de Entidade-Fraca

– Notação do DER

• O DER do Sistema Companhia

(4)

Introdução ao Modelo ER

• O Modelo Entidade-Relacionamento (MER):

– é um modelo de dados de alto-nível criado com o objetivo de representar a semântica associada aos dados do minimundo.

– utilizado na fase de projeto conceitual, onde o esquema conceitual do banco de dados da aplicação é concebido.

(5)

5/62

Introdução ao Modelo ER

• O esquema conceitual criado usando-se o MER é chamado Diagrama Entidade-Relacionamento (DER).

MER: Conjunto de conceitos e elementos de modelagem que o projetista de banco de dados precisa conhecer.

DER: Resultado do processo de modelagem

(6)

6/62

Entidades e Atributos

O objeto mais elementar que o MER representa é a

entidade.

• Uma entidade é algo do mundo real que possui uma

existência independente.

Objetos, pessoas, empregado, entes, conceitos, "coisas", etc.

- do mundo real são representados como Entidades.

Cada Entidade tem propriedades particulares que são

(7)

7/62

Exemplo de uma Entidade

Uma entidade EMPREGADO pode ser descrita pelo

seu nome,idade, endereço, salário, etc.

• Uma entidade em particular terá um valor para cada

um de seus atributos.

e1

Nome=João da Silva Código = 2222

RG= 12345678

CPF= 09876543210

Endereço=Rua Goiás 711São Paulo, SP, 1301100 Idade=55

(8)

8/62

Atributos Compostos

Alguns atributos podem ser divididos em sub-partes

com significados independentes.

Endereç o

Endereç o

Endereço da Rua

Endereço da

Rua Cidade Cidade Estado Estado

CEP CEP

Nome da Rua

Nome da

Rua Númer

o

Númer o

Apartament o

(9)

9/62

Atributos Multivalorados

Muitos atributos têm apenas um valor

(uni-valorados). Porém existem atributos que podem ter um conjunto de valores (Multivalorados)

e1 Nome = Marco Aurélio

(10)

10/62

Atributos Derivados

São atributos cujos valores devem ser obtidos após

algum processamento utilizando informações obtidas do próprio banco de dados:

– Idade = Data_Atual - Data_Nascimento

(11)

11/62

Valores Nulos de Atributos

Algumas vezes pode acontecer de um atributo não

possuir valor. Nesses casos, atribui-se um valor nulo (null) para esse atributo.

– Apartamento = null para aqueles empregados que não residam em um prédio. (não aplicável)

O valor null pode ser aplicado também para denotar

(12)

12/62

Tipos de Entidades

Entidades que têm a mesma "estrutura" e a mesma

semântica, são representadas como Tipo de Entidade.

Extensão

FUNCIONÁRIO FILME

Nome, Idade, Salário Título, Quantidade

Esquema (Intenção)

a1

a2

a3

(João da Silva, 55, 800)

(Roberto Carlos, 40, 300)

(Camélia Colina, 25, 200)

● ● ●

b1

b2

(CPMI do Mensalão, 10)

(Eu, o Robô, 5)

(13)

13/62

Atributo-Chave

Uma restrição importante sobre entidades de um tipo

de entidade é a restrição de atributo-chave.

Todo Tipo de Entidade deve ter um atributo-chave, seja ele

um atributo simples ou composto.

Os valores de um atributo-chave devem ser distintos. Esta

(14)
(15)

Questões

1. Discuta o papel de um modelo de dados de alto-nível no projeto de banco de dados.

2. Cite alguns possíveis casos onde o valor nulo (null) pode ser aplicado.

3. Defina os seguintes termos: entidade, atributo, valor de atributo, instância de relacionamento, atributo composto, atributo univalorado, atributo multivalorado, atributo derivado e atributo-chave. 4. Defina tipo de entidade. Descreva as diferenças

(16)
(17)

17/62

Relacionamentos e Tipos de Relacionamentos

Um relacionamento é uma associação entre uma ou

(18)

18/62

Grau de um Tipo de Relacionamento

O Grau de um Tipo de Relacionamento = número de

Tipos de Entidades Envolvidas

FORNECEDOR

FORNECE

PEÇA

b1

b3 b2

r1

r6

r7 r2

r3

r4

r5

c1

c3 c2 PROJETO a1

(19)

19/62

Relacionamento como Atributo

O Tipo de Relacionamento

EMPREGADO TRABALHA_PARA DEPARTAMENTO

• Pode ser pensado como:

– EMPREGADO possuindo um atributo DEPARTAMENTO ou

(20)

20/62

Papéis

Cada tipo de entidade que participa de um tipo de

relacionamento possui um papel específico.

• No caso de:

– EMPREGADO TRABALHA_PARA DEPARTAMENTO,

O papel de EMPREGADO é empregado ou trabalhador

e do DEPARTAMENTO é empregador.

(21)

21/62

Papéis em Relacionamentos Recursivos

Existem casos em que a indicação do papel é

OBRIGATÓRIA.

• Por exemplo:

– Em Tipos de Relacionamentos Recursivos

1

1

1 2

2

2

SUPERVISIONA

r1

r2

r3 a1

a2

a3

a4

(22)

22/62

Papéis em Relacionamentos com Ambiguidade Semântica

Em Tipos de Relacionamentos cuja semântica não

fique clara ou seja ambígua:

EMPRESA CONTRATA DEPARTAMENTOEMPRESA INVESTE PESSOA

(23)

23/62

Restrições sobre Tipos de Relacionamentos

Razão de Cardinalidade:

especifica a quantidade de instâncias de relacionamentos

em que uma entidade pode participar (1:1, 1:N, N:N)

• Participação:

– especifica se a existência de uma entidade depende dela estar relacionada com outra entidade através de um relacionamento.

• Total (Dependência existencial)

• Parcial

Restrição Estrutural:

Define o mínimo e máximo em que uma entidade pode

(24)

24/62

Razão de Cardinalidade

1:N

– EMPREGADO TRABALHA_PARA DEPARTAMENTO

(25)

25/62

Razão de Cardinalidade

1:1:

EMPREGADO GERENCIA DEPARTAMENTO

e1 e2 e3 e4 e5 e6 e7

n

r1

n

r2

n

r3

d1 d2

d3

(26)

26/62

Razão de Cardinalidade

N:N

– EMPREGADO TRABALHA_EM PROJETO

r1 a1

a3 a2

r2

r3

b1

b3 b2

b4

b5 r4

r5

r6

(27)

27/62

Restrição de Participação

EMPREGADO TRABALHA_PARA DEPARTAMENTO

e1 e2 e3 e4 e5 e6 e7 n r1 n r2 n r3 n r4 n r5 n r7 n r6 d1 d2 d3 N 1 Total Parcial Empregado existe somente se estiver

relacionado com algum departamento

(Total)

Empregado existe somente se estiver

relacionado com algum departamento

(Total)

Departamento pode existir mesmo não

tendo nenhum empregado (Parcial)

Departamento pode existir mesmo não

tendo nenhum empregado (Parcial)

(28)

28/62 Restrição Estrutural Restrição Estrutural Restrição Estrutural

A restrição estrutural de:

EMPREGADO é (1,1), pois participa em

No mínimo em 1 e no máximo em 1 relacionamentoDEPARTAMENTO é (0, N), pois participa em

No mínimo 0 e no máximo N relacionamentos

EMPREGADO TRABALHA-PARA DEPARTAMENTO

e1 e2 e3 e4 e5 e6 e7 n r1 n r2 n r3 n r4 n r5 n r7 n r6 d1 d2 d3 Total Parcial N 1

EMPREGADO TRABALHA-PARA DEPARTAMENTO

e1 e2 e3 e4 e5 e6 e7 n r1 n r2 n r3 n r4 n r5 n r7 n r6 d1 d2 d3

(29)

29/62

Atributo de Relacionamento

Os Tipos de Relacionamentos também podem ter

Atributos.

• Exemplos:

– Quantidade de horas trabalhadas por um empregado em um dado projeto (Horas)

• Pode ser representado como um atributo do relacionamento TRABALHA_EM

– Data em que um gerente começou a gerenciar um departamento (DataInício)

Pode ser representado como um atributo do

(30)

30/62

Atributo de Relacionamento

Atributos de Tipos de Relacionamentos 1:1 podem

ser colocados em um dos Tipos de Entidades participantes

– DataInício em

• EMPREGADO GERENCIA DEPARTAMENTO

e1 e2 e3 e4 e5 e6 e7

n

r1

n

r2

n

r3

d1 d2

d3

(31)

31/62

Atributo de Relacionamento

Atributos de TR 1:N podem ser colocados no TE que

está no lado N do relacionamento

DataInício em

EMPREGADO TRABALHA_PARA DEPARTAMENTO

(32)

32/62

Tipo de Entidade-Fraca

São Tipos de Entidades que não têm

atributos-chaves. Entidades só podem ser identificadas através da associação com uma outra Entidade.

DEPENDENTE POSSUI

d1 = { Maria, F, 01/01/1970, Esposa }

d3 = { Ana, F, 03/03/2003, Filha } d2 = { João, M,02/02/2002, Filho } *

d4 = { João, M,02/02/2002, Filho } *

d6 = { José, M,02/02/1971, Marido } d5 = { Vítor, M,02/02/2002, Filho }

d7 = { Sônia, F, 01/01/1970, Esposa }

r1 r7 r3 r4 r2 r5 r6

Tipo de entidade-fraca Tipo de entidade

proprietário da identificação

Tipo de relacionamento de identificação do Tipo de entidade-fraca

CLIENTE

(33)

33/62

Tipo de Entidade-Fraca

Um tipo de entidade-fraca sempre tem restrição de

participação total (dependência existencial) com respeito ao seu tipo de relacionamento de identificação, uma vez que não é possível identificar uma entidade-fraca sem o correspondente tipo de entidade proprietária.

• Um tipo de entidade-fraca pode ter uma chave-parcial, que é um conjunto de atributos que pode

univocamente identificar entidades-fracas

(34)

34

NOTAÇÃO DO DER

(35)

Notação do DER

Tipo de Entidade

Tipo de Entidade-Fraca

Tipo de Relacionamento

Tipo de Relacionamento de Identificação

Atributo

Atributo-Chave

Atributo Multivalorado

Atributo Composto

Atributo Derivado

Participação Total de E2 em R

Razão de Cardinalidade 1:N para E1 R E2

Restrição Estrutural (min, max) na participação de E em R Chave-Parcial

....

E1 E2

E1 1 N E2

E

(min, max)

R

R

(36)

36/62

O DER do Sistema Companhia

TRABALHA-PARA GERENCIA Nome Nss DataNasc Endereço Salário Nome Número Localização NúmeroDeEmpregados DataInício PROJETO Horas DEPENDENTE

Nome Sexo DataNasc TipoRelação

(37)
(38)

38/62

Questões

5. Defina tipo de relacionamento. Descreva as

diferenças entre relacionamento e tipo de

relacionamento.

6. Quando é necessário indicar papéis num DER?

7. Descreva as formas alternativas de especificar restrições sobre tipos de relacionamentos. Quais são as vantagens e desvantagens de cada uma?

8. Sobre quais condições um tipo de relacionamento pode se tornar um atributo de um tipo de entidade? 9. Qual o significado de um tipo de relacionamento

(39)

39/62

Questões

5. Defina tipo de relacionamento. Descreva as

diferenças entre relacionamento e tipo de

relacionamento.

6. Quando é necessário indicar papéis num DER?

7. Descreva as formas alternativas de especificar restrições sobre tipos de relacionamentos. Quais são as vantagens e desvantagens de cada uma?

8. Sobre quais condições um tipo de relacionamento pode se tornar um atributo de um tipo de entidade? 9. Qual o significado de um tipo de relacionamento

(40)

40

DIAGRAMA DE CLASSES

DA UML

(41)

Diagrama de Classe

Tipo de Entidade-Fraca

Tipo de Relacionamento

Tipo de Relacionamento de Identificação

Atributo

Atributo-Chave

Atributo Multivalorado

Atributo Composto

Atributo Derivado

Participação Total de E2 em R

Razão de Cardinalidade 1:N para E1 R E2

(42)

Pedido

- id: key

Item

- nro: partial key

Produto

- id: key

Tipo Produto

- id: key

Cliente

- cpf: key

Nome da classe

Indique inicialmente todos os atributos que são chaves. - codigo: key

(43)

43/62

Pedido

- id: key

Item

- nro: partial key

Produto

- id: key

Tipo Produto

- id: key

contém

p

o

ss

u

i

contém

p e rte n ce Cliente

- cpf: key - codigo: key

Nomeie as associações

e indique o sentido da leitura

Associação  Tipo de Relacionamento

(44)

44/62

Pedido

- id: key

Item

- nro: partial key

Produto

- id: key

Tipo Produto

- id: key

Cliente

- cpf: key

contém 1..10 1 p o ss u i 0..* 0..*

contém 1 1 p e rte n ce 0..* 1 Multiplicid ade Significado

0..1 Zero ou um

1 Somente um

0..* Zero ou mais

1..* Um ou mais

n Somente n (n 

> 1)

0..n Zero a n (n > 1)

1..n Um a n (n > 1)

- codigo: key

Multiplicidade  Restrições de Cardinalidade e de Participação

(45)

45/62

Funcionário Projeto

gerencia

- data início

1 gerencia 0..*

Note que esta classe não possui atributo chave

(classe associativa)

- id: key - id: key

Classe Associativa  Tipo de Relacionamento que possui Atributos

Classes Associativas servem apenas para vincular

(46)

46/62 Peça

Fornecedor Projeto

Fornece

Fornece

- data

1..*

1 1

- id: key

- id: key - id: key

Note que esta classe não possui atributo chave (classe associativa)

Associação N-ária  Tipo de Relacionamento com Grau acima de 2

(47)

47/62

Papéis  Papéis

A indicação de papéis somente é obrigatória em

associações cuja semântica é ambígua ou não clara.

Funcionário Projeto

gerencia

- data início

1 gerencia 0..*

Papéis

(48)

Papéis  Papéis

Empregado

- nss: key - data nasc - pnome - mnome - snome - sexo - endereçco - salario

+supervisionado 0..* supervisiona

+supervisor 1

(49)

49/62

Associações Evoluem

Especialização

• Composição

Agregação

(50)

50/62

Subclasses

Superclass e

Secretário Gerente Engenheiro Técnico

Funcionário

- id: key

Abstração de Especialização

(51)

Abstração de Especialização

Disjuntos

Emprego

- cpf: key

Engenheiro

- tipo

Secretária

- toques

Técnico

- grau

Gerente Assalariado

- salário

Horista

- valorHora

Projeto

- id: key

Gerencia

- dataInício

Sindicato

- sigla: key

(52)

52/62

Abstração de Especialização

Herança Múltipla: Subclasses podem ter mais de uma

classe base.

Herança Múltipla

Atributos de EMPREGADO são herdados apenas uma vez

EMPREGADO

SECRETÁRIA TÉCNICO

ENGENHEIRO

TipoTrabalho {Parcial}

GERENTE

GERENTE-ENGENHARIA

Recomendação:

(53)

53/62

Entidade-Fraca

Relacionamento de posse (tem, possui, é parte de)

Pessoa

«chave»

- cpf

Nariz Braço Veículo

«chave»

- chassis

1

lado

1 0..*

Entidades-Fracas

Não tem

Atributo Qualificador pois uma pessoa tem

apenas UM nariz!

Tem Atributo Qualificador (

chave parcial) pois uma pessoa

tem DOIS narizes!

Não deve ter

Atributo Qualificador pois

Veículo não é uma

entidade-fraca!

Proprietário da Identificação de Nariz e Braço

A multiplicidade seria 2, mas como foi colocado o atributo

(54)

54/62

Entidade-Fraca  Tipo de Entidade-Fraca

Entidade-fraca com dois Proprietários da

Identificação

Candidato

- nome key

Empresa

- nome: key

Entrevista realiza

Emprego data

0..*

1 1

0..1 gera

0..1 - nro: key

Identificador da Entidade-Fraca

Entidade-Fraca

(55)

55/62

Entidade-Fraca

Outras formas de representação :

DER-X – DER Nome Nome REALIZA Data EMPREGO ENTREVISTA RESULTA

CANDIDATO N N EMPRESA

Nro

(56)

56/62

Exemplo de um Esquema Conceitual

Empregado

- nss: key - data nasc - pnome - mnome - snome - sexo - endereçco - salario

Departamento

- numero: key - nome: key

-/ numeroempregados

Projeto

- nome: key - numero: key

Gerencia

- datainic

Localização

- local

Trabalha-em

- horas

Dependente

- sexo - data nasc - tipo relacao

1 0..* 1 C o n tr o la 0..* nome 0..* 1..* 1..* +gerente 1 +gerenciado 0..1 +supervisionado 0..* supervisiona +supervisor 1 4..* trabalha-para 1

(57)

57/62

Passos para realizar a modelagem conceitual

• Descubra os potenciais tipos de entidades.

– Possuem mais de uma entidade com a mesma estrutura e semântica.

– Representam as dados que o sistema precisa guardar para depois recuperar.

• Crie os tipos de relacionamentos de generalização.

– Nem sempre eles existem.

• Defina todos os atributos.

– Indique aqueles que forem compostos, multivalorados, derivados e chaves.

Defina os tipos de entidade-fraca.

– São os tipos de entidade que não possuem atributos-chaves.

– Estabeleça o tipo de relacionamento de identificação com o tipo de entidade

proprietárias da identificação.

– Se necessário, defina a chave-parcial.

• Defina os tipos de relacionamentos necessários para recuperar os

dados desejados.

– Indique as restrições: razões de cardinalidade e de participação.

– Indique, quando necessário, a restrição estrutural.

– Indique os atributos dos tipos de relacionamentos.

(58)

58/62

Como encontrar as Classes

• Uma federação de futebol pretende desenvolver um sistema

(59)

59/62

(60)

Modelo ER

Referências Bibliográficas

1. Batini, C.; Ceri, S.; Navathe, S. Conceptual Database Design: An Entity-Relationship Approach. Benjamin/Cummings, Redwood City, Calif., 1992.

2. Date, C.J., Introdução a Sistemas de Banco de Dados, tradução da 8 edição americana, Campus, 2004.

3. Elmasri, R.; Navathe, S.B. Fundamentals of Database Systems, 4th ed. Addison-Wesley, Reading, Mass., 2003.

(61)

Modelo ER

Referências Bibliográficas

5. Heuser, C.A., Projeto de Banco de Dados., Sagra - Luzzatto, 1 edição, 1998.

6. Korth, H.; Silberschatz, A. Sistemas de Bancos de Dados. 3a. Edição, Makron Books, 1998.

7. Ramakrishnan, R.; Gehrke, J., Database Management Systems, 2 nd ed., McGraw-Hill, 2000.

8. Teorey, T.; Lightstone, S.; Nadeau, T. Projeto e modelagem de bancos de dados. Editora Campus, 2007.

Referências Web

1. Takai, O.K; Italiano, I.C.; Ferreira, J.E. Introdução a Banco de Dados. Apostila disponível no site:

(62)

Pós-Graduação

Engenharia de Software

Obrigado!

Referências

Documentos relacionados

Todavia, para as Servas de Nossa Senhora de FáƟ ma, Família Andaluz e todas as pessoas ligadas à Congregação, este ano reves- Ɵ u-se de especial singularidade, porque, no passado

• Determinar as principais causas que levam a falha dos seguintes materiais e equipamentos: chave magnética, reator, relé fotoelétrico, transformador, conexão (ramal de ligação

Uma grande vantagem desta prática é que, caso um membro da equipe deixe o projeto antes do fim, a equipe consegue continuar o projeto com poucas dificuldades, pois

A Central de Regulação de Ofertas de Serviços de Saúde (CROSS) é a responsável pela execução das “Diretrizes de Regulação” da Secretaria de Estado da Saúde de São Paulo.

Aquisição de materiais elétricos e refletores de luz branca para realizar a substituição e instalação dos refletores do estacionamento da sede e refletores coloridos que

Apesar do problema da previsão da produção no cenário do projeto Smartpumping não ter requerido a utilização de um modelo baseado na inteligência artificial, como redes neurais,

pertinente e relevante assunto relacionado ao conteúdo abordado ao longo do curso e que deverá ser apresentado na forma escrita e eletrônica, constituindo-se em

O desconto referente aos cursos participantes da campanha NÃO será cumulativo com o desconto disponível para colaboradores da Unicesumar (educação presencial ou