47
Banco de Dados Modelagem Conceitual por: Mário Sergio da Silva

Bancode dados modelagem conceitual

Embed Size (px)

Citation preview

Page 1: Bancode dados modelagem conceitual

Banco de Dados Modelagem Conceitual por: Mário Sergio da Silva

Page 2: Bancode dados modelagem conceitual

Banco de Dados Modelagem Conceitual

Prof. Mário Sergio da Silva [email protected] Lattes: http://lattes.cnpq.br/1161794053211014

Atualizado em Maio/2016

Este material é uma adaptação didática que utiliza ilustrações e textos retirados de uma seleção criteriosa de publicações disponíveis livremente na internet, juntamente com conteúdo inédito. (bibliografia disponível no final dos slides)

Page 3: Bancode dados modelagem conceitual

Conteúdo Modelagem Conceitual:

Entidade, Atributos, Relacionamento

Atributos de relacionamento e identificadores

Cardinalidades: Máxima e Mínima

Graus de um Relacionamento

Tipos de Entidade: Forte, Fraca e Associativa

Exercícios

Page 4: Bancode dados modelagem conceitual

4 4 Prof. Mário Sergio

4

Modelagem de Dados Definições:

Modelo Entidade Relacionamento (ER) É a técnica mais conhecida Tem como objetivo auxiliar na especificação geral do

sistema O modelo de dados é representado graficamente através

de um Diagrama de Entidade-Relacionamento (DER).

Principais conceitos do Modelo ER são: Entidades Atributos e Relacionamentos

Notação: Criada por Peter Chen em 1976

Page 5: Bancode dados modelagem conceitual

5 5 Prof. Mário Sergio

5

Modelagem de Dados Notações DER

Entidade Associativa

Atributo Derivado

Page 6: Bancode dados modelagem conceitual

6 6 6

Modelagem de Dados Entidade

É um conjunto de objetos do mundo real sobre os quais se deseja manter informações no banco de dados

É distinguível de outros objetos Representada através de um retângulo Pussui existência própria, pode representar:

objetos concretos (uma pessoa) objetos abstratos (um departamento)

Departamento

Contabilidade Financeiro Jurídico Pessoal

Empregado

João Pedro Paulo Maria

Possui propriedades Atributos e Relacionamentos

Page 7: Bancode dados modelagem conceitual

7 7 7

Modelagem de Dados Atributo

É um dado que é associado a cada ocorrência de uma entidade ou de um relacionamento

Exemplos de atributos de entidades:

Empregado Nome Endereço Salário

Departamento Descrição númeroDeFuncionários

Page 8: Bancode dados modelagem conceitual

8 8 8

Modelagem de Dados Exercício

Considerando um sistema acadêmico, envolvendo entidades que todos conhecemos, defina pelo menos 3 atributos para cada uma das entidades

Aluno

Disciplina

Professor

Turma

Page 9: Bancode dados modelagem conceitual

9 9 9

Modelagem de Dados Relacionamento

Como expressamos que João trabalha no Departamento de Contabilidade?

Empregado Departamento Lotação

João Pedro Paulo Maria

Contabilidade Financeiro Jurídico Pessoal

Diagrama de Ocorrências (instâncias)

Page 10: Bancode dados modelagem conceitual

10 10 10

Modelagem de Dados Relacionamento

É uma associação entre entidades Representado através de um losângulo e

linhas que ligam as entidades relacionadas

nomeDoRelacionamento A B

Page 11: Bancode dados modelagem conceitual

11 11 11

Modelagem de Dados Relacionamento

Exemplos de Relacionamentos

Cliente Conta ContaCliente

Medico Paciente Consulta

Cidade

Residência

Page 12: Bancode dados modelagem conceitual

12 12 12

Modelagem de Dados Relacionamento

Relacionamentos também possuem Atributos. Exemplo 1:

Médico Paciente Consulta

dataDaConsulta nome celular nome endereço

Dr. Paulo Dr. Flora

Vania

José

22/10/2007 05/02/2009 20/03/2009

instâncias

esquema

Page 13: Bancode dados modelagem conceitual

13 13 13

Modelagem de Dados Relacionamento

Empregado Projeto Atuação

função nome salario sigla

Vania Pedro

Gabriel

AATOM

Sinpli

coordenador pesquisador bolsista

Relacionamentos também possuem Atributos. Exemplo 2:

instâncias

esquema

Page 14: Bancode dados modelagem conceitual

14 14 14

Modelagem de Dados Atributos Identificadores

Cada entidade deve ter um identificador Identificador (também conhecido como chave):

É o conjunto de um ou mais atributos ou relacionamentos cujos valores servem para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade

Exemplos: os atributos CPF ou Carteira de Identidade identificam UNICAMENTE um

cidadão brasileiro O CRM identifica um médico dentro do conselho regional.

Cliente CPF Nome Endereco

Atributo Identificador Simples Médico

CRM nome celular

Page 15: Bancode dados modelagem conceitual

15 15 15

Modelagem de Dados Atributos Identificadores (Composto)

Prateleira NumeroCorredor NumeroPrateleira Capacidade

Suponha que temos um edifício de 4 andares (1,2,3,4) e cada andar possua 4 apartamentos (1,2,3,4). Neste caso, como os números dos apartamentos são iguais em todos os andares, fica impossível dizer qual ocorrência de apartamento se deseja acessar. Para solucionar o problema você deve informar além do número do apartamento, o numero do andar

Identificadores Compostos

Page 16: Bancode dados modelagem conceitual

16 16 16

Modelagem de Dados Atributos Identificadores

Quando parte da chave é um relacionamento Exemplo: CPF do Empregado e numero sequencial na entidade

Dependente

Entidade Fraca: entidade sem chave A entidade é identificada por algum atributo da entidade +

algum relacionamento

Entidade Forte: entidade com chave A entidade é identificada por atributos da própria entidade

Empregado Dependente Numero Nome

Cpf Nome Endereco

Chave=CPF + numero

possui

Page 17: Bancode dados modelagem conceitual

17 17 17

Modelagem de Dados Exercício

Considerando o sistema acadêmico do exercício anterior, já com os atributos, agora defina os relacionamentos entre as entidades:

Aluno

Disciplina

Professor

Turma

nomeDoRelacionamento A B

Page 18: Bancode dados modelagem conceitual

18 18 18

Modelagem de Dados Problema

A cooperativa de pesca PescaFácil possui 280 pescadores associados, mas nem todos trabalham todos os dias. Você foi contratado pelo diretor da PescaFácil para desenvolver um programa que lhe permite fazer o controle da produção de peixes. Ele disse: “A medida que cada pescador chega na cooperativa eu preciso registrar o nome dele, assim como a espécie e o peso de cada peixe que ele pescou no dia”. Cada espécie possui um preço por Kg, e eu pago o valor total no ato. Mas eu não quero toda vez digitar o nome por extenso da espécie, para isso usamos a seguinte codificação: 1 – Serra (R$ 12,5) 2 - Dourado (R$ 8,0) 3 - Atum (R$ 13,8) 4 - Robalo (R$ 15,0) 5 - Sardinha (R$ 7,8) Ah, e ainda tem mais, no futuro podem aparecer outras espécies.

Exercício: Realize o levantamento de requisitos do

problema e elabore um DER, por enquanto apenas com Entidades,

Relacionamentos e Atributos

Page 19: Bancode dados modelagem conceitual

19 19 19

Modelagem de Dados Cardinalidade

Uma propriedade importante dos relacionamentos é a especificação de quantas ocorrências de uma entidade podem estar associadas a uma determinada ocorrência de outra entidade.

Cardinalidades: 1:1 (um-para-um) 1:N (um-para-muitos) N:N (muitos-para-muitos)

Exemplo de notação 1:N

Representação

Page 20: Bancode dados modelagem conceitual

20

Modelagem de Dados Cardinalidade 1 : 1 (Um Para Um)

Uma ocorrência de A está associada a no máximo uma ocorrência de B, e uma ocorrência em B está associada a no máximo uma ocorrência em A.

João

Pedro

Paulo

Maria

Jurídico

Contabilidade

Financeiro Conjunto A (Empregado)

Conjunto B (Departamento)

Empregado Departamento Gerencia 1 1

cada

cada

Page 21: Bancode dados modelagem conceitual

Modelagem de Dados Cardinalidade 1 : 1 (Um Para Um)

Outros Exemplos:

Auto Relacionamento

Page 22: Bancode dados modelagem conceitual

22 22 22

Modelagem de Dados Cardinalidade 1 : N (Um Para Muitos)

Uma ocorrência de A está associada a várias ocorrências de B, porém uma ocorrência de B deve estar associada a no máximo uma ocorrência em A

Conjunto A (Departamento)

Empregado Departamento Lotação N 1

Contabilidade

Financeiro

Ana

Pedro

João

Sandro

Conjunto B (Empregado)

cada

cada

Page 23: Bancode dados modelagem conceitual

Modelagem de Dados Cardinalidade 1 : N (Um Para Muitos)

1 N

Outro Exemplo:

cada

cada

Page 24: Bancode dados modelagem conceitual

24

Modelagem de Dados Cardinalidade M:N ou N:N (Muitos Para Muitos)

Uma ocorrência de A está associada a qualquer número de ocorrências de B, e uma ocorrência em B está associada a qualquer número de ocorrências em A

Sigmoda

MM-TOM

Sinpli

AATOM Conjunto A (Empregado)

Conjunto B (Projeto)

Empregado Projeto Atua N N

João

Pedro

Paulo

Maria

cada

cada

Page 25: Bancode dados modelagem conceitual

Modelagem de Dados Cardinalidade M:N ou N:N (Muitos Para Muitos)

25

Auto Relacionamento

Page 26: Bancode dados modelagem conceitual

Modelagem de Dados Cardinalidade: Exemplos

26

Page 27: Bancode dados modelagem conceitual

Modelagem de Dados Cardinalidade: Exemplos

27

Page 28: Bancode dados modelagem conceitual

Modelagem de Dados Cardinalidade: Exemplos

28

Page 29: Bancode dados modelagem conceitual

29 29 29

Modelagem de Dados Cardinalidades (Mínima, Máxima)

O modelo ER permite tambem expressar cardinalidades mínimas. Que é o número mínimo de ocorrências de uma entidade A com relação a uma outra entidade B

Representação separada por vírgula:

(cardinalidade mínima, cardinalidade máxima) Cardinalidades Possíveis: (0,1) (1,1) (0,N) (1,N)

Cardinalidade mínima = 1 (relacionamento obrigatório) Cardinalidade mínima = 0 (relacionamento opcional)

Page 30: Bancode dados modelagem conceitual

30 30 30

Modelagem de Dados Cardinalidades (Mínima, Máxima)

Exemplos de Relacionamentos:

cada

cada

cada

Page 31: Bancode dados modelagem conceitual

31 31 31

Modelagem de Dados Cardinalidades (Mínima, Máxima)

Exemplos de Relacionamentos:

cada

cada

cada

Page 32: Bancode dados modelagem conceitual

32 32 32

Modelagem de Dados Cardinalidades (Mínima, Máxima)

Cliente Conta ContaCliente (1,1) (1,N)

Exemplo de Relacionamento Obrigatório:

Exemplo de Relacionamento Opcional:

Empregado Departamento Gerencia (1,1) (0,1)

cada

cada

cada

cada

Page 33: Bancode dados modelagem conceitual

33 33 33

Modelagem de Dados Cardinalidade (Mínima, Máxima)

Exemplo “Projeto Engenharia”:

Explicativo cardinalidades do DER acima: Cada Engenheiro pode estar atuando em 0 projetos (em nenhum projeto), ou seja, é opcional. Mas também pode estar atuando em vários (N) projetos. Enquanto que, Cada projeto precisa da atuação de pelo menos 1 engenheiro, ou seja, é obrigatório ter um engenheiro responsável. Assim como, podem haver mais de um (N) engenheiros atuando no projeto.

Page 34: Bancode dados modelagem conceitual

34 34 34

Agora e a sua vez, descreva em detalhes as cardinalidades do DER ilustrado a seguir.

Modelagem de Dados Exercícios

Page 35: Bancode dados modelagem conceitual

35

Defina as cardinalidades dos DER: “Cooperativa de pesca PescaFácil“ “Sistema Acadêmico”.

Modelagem de Dados Exercícios

Page 36: Bancode dados modelagem conceitual

36

Modelagem de Dados Grau de um Relacionamento

É Dado pelo Total de Entidades envolvidas em um Relacionamento: A grande maioria dos relacionamentos são de grau 2 : Observe que, nos DER ao lado, só há relacionamentos de GRAU 2, Pois, cada um dos relacionamentos possui apenas duas entidades relacionadas. Os relacionamentos são classificados quanto ao seu GRAU, em: Unário - Grau 1 Binário - Grau 2 Ternário - Grau 3

Page 37: Bancode dados modelagem conceitual

37

Modelagem de Dados Grau de um Relacionamento: Unário (auto relacionamento)

Relacionamentos de Grau 1

Empregado

(0,N) supervisiona

supervisor (1,1)

supervisionado

Pessoa

(0,1) (0,1) casadoCom

Esposa Marido

Page 38: Bancode dados modelagem conceitual

38

Modelagem de Dados Grau de um Relacionamento: Ternário (grau 3)

Exemplo:

Cidade Distribuidor

Produto

distribuição (1,1) (1,N)

(1,N)

Page 39: Bancode dados modelagem conceitual

39

Modelagem de Dados Grau de um Relacionamento: Ternário (grau 3)

Mais Exemplos:

Page 40: Bancode dados modelagem conceitual

40

Modelagem de Dados Entidade Associativa

Tem o objetivo de eliminar relacionamentos com grau maior que 2

Assim, este DER que possui relacionamento grau 3 que, na verdade, quer dizer o seguinte:

Relacionamento de Relacionamento

Page 41: Bancode dados modelagem conceitual

41

Modelagem de Dados Entidade Associativa

Assim, com o uso de uma Entidade Associativa, o DER passa a ser de Grau 2:

Entidade Associativa

Page 42: Bancode dados modelagem conceitual

42

Modelagem de Dados Ferramentas CASE

As ferramentas CASE permitem a criação de diagramas de forma simples em um ambiente de fácil utilização e com recursos para incluir as principais regras de composição dos diagramas. Exemplos comuns de ferramentas profissionais: Star UML e DBDesigner. O BrModelo é uma ferramentas para fins educacionais

Do inglês Computer-Aided Software Engineering, as chamadas ferramentas CASE são aquelas baseadas em computadores (softwares) utilizadas na Engenharia de Software para auxílio nas atividades desde análise de requisitos até modelagem de dados.

Page 43: Bancode dados modelagem conceitual

43 43 43

1. Construa um diagrama E-R para um hospital, com um conjunto de pacientes e um conjunto de médicos. Registros de diversos exames e avaliações realizados são associados a cada paciente.

2. Construa um diagrama E-R para uma companhia de seguros de automóveis com um conjunto de clientes, onde cada um possui certo número de carros. Cada carro tem um número de acidentes associados a ele.

3 Mostre como o projeto de banco de dados do diagrama abaixo pode ser representado apenas por relacionamentos binários, expressando as mesmas restrições.

Além disso, defina os possíveis atributos

Modelagem de Dados Exercícios (nível médio)

Page 44: Bancode dados modelagem conceitual

44 44 44

Um estabelecimento comercial contratou seus serviços para modelar o banco de dados de VENDAS da empresa. Segundo o gerente comercial, a empresa precisa ter um cadastro de clientes, e armazenar cpf, nome, data de nascimento e cidade onde ele mora. Os cliente podem fazer pedidos, inclusive mais de um por dia. Os pedidos são numerados sequencialmente e devem ser classificados em ATACADO ou a VAREJO, e podemos oferecer descontos de acordo com a quantidade comprada. Além disso, cada pedido pode ter mais de um produto e cada produto possui uma marca, peso unitário e um preço padrão pré-cadastrado. Ah, os vendedores conquistam novos clientes e acompanham os cliente atuais, e por isso eles ganham comissão sobre os pedidos.

Modelagem de Dados Problema Proposto (nível médio)

Page 45: Bancode dados modelagem conceitual

45 45 45

A companhia discográfica PimbaParaTodos decidiu criar uma base de dados com informação sobre os seus músicos bem como outra informação da companhia. A informação dada ao desenhador foi a seguinte:

Cada músico tem um nro. de BI, um nome, uma morada e um número de telefone. Os músicos em início de carreira muitas vezes partilham um endereço e além disso assume-se que cada endereço só tem um telefone.

Cada instrumento usado nos estúdios tem um nome (ex. guitarra, bateria, etc.) e um código interno.

Cada disco gravado na companhia tem um título, uma data, um formato (ex. CD, MC, K7), e um identificador do disco.

Cada música gravada na companhia tem um título e um autor.

Cada músico pode tocar vários instrumentos, e cada instrumento pode ser tocado por vários músicos.

Cada disco tem um certo número de músicas, mas cada música só pode aparecer num disco.

Cada música pode ter a participação de vários músicos, e cada músico pode participar em várias músicas.

Cada disco tem um músico que é o seu produtor. Os músicos podem produzir vários discos.

Modelagem de Dados Problema Proposto (nível avançado)

Page 46: Bancode dados modelagem conceitual

46

Bibliografia

Elmasri & Navathe – Fundamentos de Bancos de Dados

Carlos Alberto Heuser – Projeto de Banco de Dados

Korth e Silberchatz – Sistema de Bancos de Dados

Baseado nos Slides de Vania Bogorny – UFSC Universidade de Santa Catarina

Page 47: Bancode dados modelagem conceitual

47

Links sobre Linguagens/Banco de Dados

http://www.dialetodigital.com/blog/conteudos-programacao/