Baixe o app para aproveitar ainda mais
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;
Compartilhar