Buscar

02 -DER - Relacionamentos Binários

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Linguagem de Programação 
anderson_barroso@unit.br 
 
giga.anderson@gmail.com 
 
mailto:anderson_barroso@unit.br
mailto:giga.anderson@gmail.com
mailto:giga.anderson@gmail.com
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Há várias estratégias para se identificar uma entidade em 
uma problemática real. 
 Para uma melhor identificação das entidades de um DER, 
devemos perceber as: 
 
 Coisas tangíveis; 
 Funções exercidas por elementos; 
 Eventos ou ocorrências; 
 Interações; 
 Especificações 
 
 
 
2 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Coisas tangíveis 
 É tudo que pode ser tocado; 
 Todos os elementos concretos 
 
EX: 
 Avião, carro, casa, porta, lápis, livro, chave, cachorro, máquinas, 
etc. 
 
 
 
3 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Coisas tangíveis (COUGO,1997) 
 
 
 
4 
Conjunto(entidade/classe) Objetos do Conjunto 
MEIO DE TRANSPORTE Avião, automóvel 
ANIMAL Cavalo, elefante, cachorro 
UTENSÍLIOS 
DOMÉSTICO Garrafa, mesa, telefone, vidro 
ESCOLAR Livro, lápis, borracha, quadro 
EQUIPAMENTO Computador, máquina de escrever 
PERTENCE PESSOAL Chave, mala, camisa, carteira, agenda 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Funções 
 A entidade é caracterizada pela função que exerce 
 
EX: 
 Médico cirurgião, Analista de Sistemas, professor de matemática, 
departamento pessoal, autor de um livro, gerente de empresa 
 
 
 
5 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Funções (COUGO,1997) 
 
 
 
6 
Conjunto(entidade) Objetos do conjunto 
Coisas Tangíveis 
mapeadas como função 
ESPECIALISTA 
Médico cirurgião, médico 
pediatra, engenheiro civil, 
autor de um livro 
PESSOA 
ORGANIZAÇÃO 
Departamento de compras, 
gerência de suporte, analista 
de sistemas 
ÓRGÃO FUNCIONAL 
ATENDENTE 
Gerente de hotel, 
recepcionista de clínica 
PESSOA 
CLIENTE Alunos, paciente, usuários PESSOA 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Eventos ou ocorrências 
 Alguns objetos só são percebidos no decorrer de uma certa ação. 
 Quando um certa ação ocorre, conseguimos materializar uma 
ocorrência, o que a transforma em entidade. 
 
EX: uma pessoa pegou um vôo comercial, um jogador de futebol de 
machucou, um fornecedor fez uma apresentação técnica 
 
 
 
7 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Eventos e Ocorrências (COUGO,1997) 
 Vejam quantas entidades identificamos apenas em uma 
ação: “Apresentação de um fornecedor.” 
 
 
 
 
8 
Dados relevantes Conjunto ao qual pertence 
Nome do apresentador PESSOA 
Especialidade do apresentador PESSOA 
Telefone do fornecedor FORNECEDOR 
Endereço da apresentação HOTEL 
Nome do produto apresentado PRODUTO 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Interações 
 Ao analisarmos uma interação podemos identificar várias 
entidades 
 
EX: compra de um imóvel; aplicação de uma prova, adoção de uma 
criança por um casal, etc. 
 
 
9 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Interações (COUGO,1997) 
 
 
10 
Interação Conjunto ao qual pertence Situação possível 
Compra de um 
imóvel 
COMPRADOR, 
IMÓVEL, 
PROPRIETÁRIO, 
CORRETOR, 
AGENTE FINANCEIRO 
Relacionamento: “é comprado por” 
Entidade: “Contrato de Compra” 
Evento : “aquisição” 
Adoção de uma 
criança 
FAMÍLIA CEDENTE, 
FAMÍLIA ADOTIVA, 
CRIANÇA, 
ÓRGÃO REGULAMENTADOR 
Relacionamento: “é adotada por” 
Entidade: “Registro de adoção” 
Evento : “adoção” 
 
Venda realizada por 
um fornecedor 
FORNECEDOR, 
PRODUTO, 
CLIENTE 
Relacionamento: “é vendido por” 
Entidade: “Nota fiscal de venda” 
Evento : “venda” 
 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Especificações 
 Definem características de outros objetos 
 Não tem muita relevância ao ser analisado isoladamente. 
 
Por exemplo, imagine que dentre as especificações definidas para 
um refrigerador tenhamos: 
 Cor, 
 Número de série 
 Capacidade de armazenamento, 
 Voltagem, 
 Modelo, 
 Altura, 
 
 
11 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Especificações 
 Podemos definir todas as especificações do slide anterior como 
atributos de uma única entidade: 
 
 
 
 
 Como também podemos definir REFRIGERADOR como COISA 
TANGÍVEL e MODELO DO REFRIGERADOR como especificação (Só 
tem sentido existir se o refrigerador existir): 
 
12 
Linguagem de Programação 
Identificando Entidades 
 Entidade 
 Especificações 
 Como também podemos definir 
REFRIGERADOR como COISA 
TANGÍVEL e MODELO DO REFRIGERADOR 
como especificação. 
 
 
 
 
 
(A especificação só tem sentido existir se o refrigerador existir) 
 
13 
Linguagem de Programação 
Identificando Relacionamentos 
 Relacionamento 
 Conjunto de associações entre ocorrências de entidades 
(Heuser, 2004); 
 Demonstra como uma entidade se comporta em relação 
aos demais, qual o grau de dependência e qual a associação 
dos dados; 
 
 Exemplo 
 
 
14 
Linguagem de Programação 
Identificando Relacionamentos 
 Relacionamento 
 Mais exemplos 
 
 
15 
Linguagem de Programação 
Identificando Relacionamentos 
 Cardinalidade 
 É a forma como as entidades se relacionam; 
 Relacionamentos Binários 
 1:1; 1:N; 0:1; 0:N; N:N 
 Relacionamentos Ternários; 
 
 
 
16 
Linguagem de Programação 
Identificando Relacionamentos 
 Relacionamento Binário 
 É um relacionamento feito entre duas entidades e é 
identificado de acordo com a relação entre as entidades 
existentes em uma determinada situação/problema. 
 
 
17 
Linguagem de Programação 
Identificando Relacionamentos 
 Relacionamento Binário 
 Imaginem a relação CARRO - PESSOA: 
 Nem toda PESSOA é proprietária de um CARRO; 
 Um CARRO pode pertencer a várias PESSOAS; 
 Algumas PESSOAS tem mais de um CARRO; 
 Se um CARRO pertence a uma PESSOA, 
ele não pertencerá a mais ninguém. 
 
18 
Linguagem de Programação 
Identificando Relacionamentos 
 Relacionamento Binário 
 Agora imaginem a relação CARRO – PESSOA - IMÓVEL: 
 Um carro é de propriedade de uma pessoa, mas pode ser 
utilizado por diversas outras. 
 Uma pessoa utiliza um imóvel 
 
19 
Linguagem de Programação 
Identificando Relacionamentos 
 Relacionamento Binário 
 Entre duas entidades podem ser estabelecidos mais que 
um relacionamento 
 Uma entidade pode participar de vários relacionamentos 
 
20 
Linguagem de Programação 
Exemplo 
 Eloísa foi contratada para elaborar o DER (Diagrama 
Entidade Relacionamento) de um sistema para a Escola de 
Idiomas. O dono da escola explicou que a escola tem 
turmas de Inglês, Espanhol e Alemão, e que cada turma é 
acompanhada por um único professor. Ao longo do 
semestre, cada aluno terá 3 notas que serão usadas no 
cálculo de sua média. O sistema deve registrar o nome, a 
matrícula e o endereço (rua, número, bairro) de cada aluno, 
assim como o nome, o salário, a data de nascimento e a 
titulação (doutor, mestre, especialista ou graduado) de 
cada professor. Entre duas entidades podem ser 
estabelecidos mais que um relacionamento. Uma entidade 
pode participar de vários relacionamentos. 
21 
Linguagem de Programação 
Solução 1 
 Vamos identificar as entidades: 
 ALUNO 
 TURMAS 
 PROFESSOR 
 Vamos identificar os relacionamentos 
 TURMA - é acompanhada - PROFESSOR 
 ALUNO – é matriculado – TURMA 
 Vamos identificar os atributos 
 ALUNO (matricula, endereco, nome, notas, qtde_faltas) 
 TURMA (código, disciplina, horário) 
 PROFESSOR (matricula, nome, titulacao, data_nascimento, 
salario) 
 
22 
Linguagem de Programação 
Solução 1 
 Perguntas que podem modificar o DER: 
 Todos os alunos possuem as mesmas notas e quantidade de 
faltas para as mesmas turmas? 
 Então, o correto seria: 
 ALUNO (matricula, endereco,nome) 
 É MATRICULADO (nota1, nota2, nota3, qtde_faltas) 
 TURMA (código, disciplina, horário) 
 
Um relacionamento pode ter atributos??? 
 
23 
Linguagem de Programação 
Solução 1 
 Relacionamento com atributos: 
 Uma das tarefas da análise de dados para a construção do DER e 
verificar se um determinado atributo irá pertencer a uma 
ENTIDADE ou a um RELACIONAMENTO. 
 
 Devemos analisar o significado do atributo, por exemplo: 
 Se um atributo existe antes mesmo do relacionamento existir, ele 
deve pertencer à ENTIDADE 
 Se um atributo só existe devido à existência do relacionamento, 
ele deve pertencer ao RELACIONAMENTO. 
 
 São comumente usados em relacionamentos N:N, embora em 
outras cardinalidades, também podem ser observados. 
24 
Linguagem de Programação 
Solução 1 
25 
Linguagem de Programação 
Solução 2 
 Vamos identificar as entidades: 
 ALUNO 
 TURMAS 
 PROFESSOR 
 TITULACAO 
 DISCIPLINA 
 
Porque criar TITULACAO e DISCIPLINA??? 
26 
Linguagem de Programação 
Solução 2 
 Vamos identificar os relacionamentos 
 TURMA - é acompanhada - PROFESSOR 
 TURMA – tem - DISCIPLINA 
 ALUNO – é matriculado – TURMA 
 PROFESSOR – possui - TITULACAO 
 
 Vamos identificar os atributos 
 ALUNO (matricula, rua, bairro, numero_da_rua, cidade, estado, CEP, nome) 
 É MATRICULADO (nota1, nota2, nota3, qtde_faltas) 
 TURMA (código, disciplina, horário) 
 PROFESSOR (matricula, nome, data_nascimento, salario) 
 DISCIPLINA(codigo_disciplina, nome_disciplina) 
 TITULACAO(codigo_titulacao, descricao_titulacao) 
27 
Porque subdividir o atributo endereço??? 
Linguagem de Programação 
Solução 2 
28 
Linguagem de Programação 
Exercícios 
 Construa o DER para os seguintes casos: 
1. Sistema de Multa 
 Um carro pode sofrer várias multas. Uma multa 
pertence sempre a um único carro; O carro possui um único 
proprietário, mas uma mesma pessoa pode ter vários carros; 
Uma multa sempre é registrada por um guarda de trânsito 
ou um radar eletrônico. Um mesmo guarda ou um mesmo 
radar podem registrar várias multas em um único dia. 
Invente pelo menos 3 atributos para cada entidade. 
29 
Linguagem de Programação 
Exercícios 
30 
2. Uma fábrica pretende implementar uma base de dados para 
gerir o estoque dos seus armazéns, as encomendas, e as 
vendas. Assim tem que levar em conta que: 
 A empresa comercializa vários produtos, cada um dos quais com 
um código, um nome, e um preço. Em cada momento a empresa 
deve ainda saber qual a quantidade existente no armazém de 
cada um dos produtos; 
 Uma encomenda, deve ter um número e a data em que foi feita, 
pode ter vários produtos, mas diz respeito apenas a um 
fornecedor; 
 De cada fornecedor a empresa deseja guardar a informação do 
seu nome, número de contribuinte, morada, forma de pagamento, 
prazo de pagamento, e um código interno de tipo de fornecedor; 
Linguagem de Programação 
Exercícios 
31 
3. Uma companhia aérea pretende implementar uma base de 
dados com a seguinte informação: 
 A companhia tem vários aviões. Cada avião tem, para além 
da matrícula, um nome, a marca do avião, o número de 
lugares, e indicação da sua autonomia; 
 Na companhia trabalham vários pilotos; 
 Cada avião faz vários voos. Cada voo deve ter, pelo menos, 
a indicação da data e hora estimadas de saída e chegada, 
bem como os locais de partida e de destino; 
 Cada voo de um dado avião é pilotado por pelo menos um 
piloto;

Outros materiais