Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Tecnólogo em Análise e Desenvolvimento de Sistemas 10 Semestre de 2013 Banco de Dados I – BD I Prof. Lineu Mialaret Aula 6: Modelo Entidade Relacionamento (3) Banco de Dados I Aula 6 - 1 ©Prof. Lineu Mialaret Elementos do MER Um Modelo Entidade Relacionamento - MER consiste dos seguintes elementos: Diagramas, Os quais contém Entidades (Supertipos e Subtipos, por exemplo), Atributos, Relacionamentos; e Informações Complementares não Diagramáticas (Dicionário de Dados), As quais representam descrições das Entidades e dos Atributos, Formatos, Valores Admissíveis, Domínios, e Regras de Negócio. Banco de Dados I Aula 6 - 2 ©Prof. Lineu Mialaret Identificando e Modelando as Entidades Os passos descritos abaixo ajudam a identificar e modelar entidades, a partir de anotações de uma entrevista ou outra documentação qualquer (ou supondo que tenha sido realizada a Etapa de Especificação e produzido também o Modelo Funcional): Examinar cada substantivo do contexto. Quais são os substantivos significativos para o domínio de negócio? Nomear (dar nomes significativos) as entidades descobertas e identificar alguns de seus atributos, bem como os componentes que farão parte de chaves. Essas entidades relacionam-se com outras? Quais são esses esses relacionamentos e suas cardinalidades? Eles possuem atributos? Banco de Dados I Aula 6 - 3 ©Prof. Lineu Mialaret Exemplo de Modelagem (Chen) V 1.0 Uma locadora de veículos tem uma agência, a qual possui vários automóveis usados para alugar. Os automóveis são classificados pelo seu porte (pequeno, médio e grande) e têm um preço do aluguel (R$/dia) definido pelo porte. A locadora precisa armazenar os dados de seus veículos e movimentações financeiras, bem como seus clientes devem ter sua informações (nome, CPF, endereço e telefone) disponibilizadas de forma permanente. Banco de Dados I Aula 6 - 4 ©Prof. Lineu Mialaret 1- Identificar Entidades Agencia Automovel Cliente Banco de Dados I Aula 6 - 5 ©Prof. Lineu Mialaret 2 - Identificar Atributos codigo nome placa endereco Agencia codigo marca Automovel nome Porte Cliente tipo cpf Banco de Dados I endereco preco telefone Aula 6 - 6 ©Prof. Lineu Mialaret 3 - Identificar Chaves codigo nome placa endereco Agencia codigo marca Automovel nome Porte Cliente tipo cpf Banco de Dados I endereco preco telefone Aula 6 - 7 ©Prof. Lineu Mialaret 4 - Identificar Relacionamentos codigo nome placa endereco tem Agencia marca Automovel tem possui aluga codigo Porte nome Cliente tipo cpf Banco de Dados I endereco preco telefone Aula 6 - 8 ©Prof. Lineu Mialaret 5 - Identificar Cardinalidades codigo nome placa endereco tem Agencia marca Automovel tem possui aluga codigo Porte nome Cliente tipo cpf Banco de Dados I endereco telefone Aula 6 - 9 preco ©Prof. Lineu Mialaret 6 - Identificar Atributos de Relacionamentos codigo nome placa endereco tem Agencia marca Automovel valor_pago tem possui aluga codigo data_inicio nome data_fim Porte Cliente tipo cpf Banco de Dados I endereco preco telefone Aula 6 - 10 ©Prof. Lineu Mialaret Exercício 1 - Contexto de Negócio Um hospital emprega vários médicos e enfermeiras. Cada médico é auxiliado por uma ou mais enfermeiras, e ele atende um ou mais pacientes no seu turno de trabalho. Para cada paciente atendido, o médico receita um tratamento, que pode ou não utilizar medicamentos. Banco de Dados I Aula 6 - 11 ©Prof. Lineu Mialaret Exercício 2 - Contexto de Negócio Uma empresa de treinamento oferece vários cursos na área de informática. Cada curso tem código, nome e preço. Os cursos têm a duração de uma, duas ou três semanas. Um professor pode lecionar em vários cursos. Cada curso é ministrado por apenas um professor. Um aluno pode matricular-se em vários cursos. A empresa precisa registrar nome e telefone de cada aluno e de cada professor. Banco de Dados I Aula 6 - 12 ©Prof. Lineu Mialaret Exercício 3 - Contexto de Negócio “Eu sou o Diretor de Recursos Humanos de uma grande Empresa. Precisamos manter informações sobre os nossos empregados tais como: nome, cargo, data de admissão e salário. Alguns dos Empregados são Gerentes. Freqüentemente precisamos saber qual é o Gerente de determinado Empregado e quais Empregados estão sob responsabilidade de determinado Gerente. A Empresa é dividida em Departamentos. Cada Empregado é designado para um dos Departamentos. Precisamos saber a localização desse Departamento.” Banco de Dados I Aula 6 - 13 ©Prof. Lineu Mialaret Exercício 4 - Contexto de Negócio “Nossa empresa vende produtos para todo o país. Ela está dividida em em quatro regiões de vendas: Norte, Sul, Leste e Oeste. Cada região é dividida por sua vez em distritos. Cada distrito é segmentado em territórios e cada território está separado em áreas de vendas. Nós temos vendedores que são responsáveis por uma ou mais áreas e possuem uma cota de venda específica. Também temos gerentes que são responsáveis por um ou mais distritos e pelos territórios dentro deles. Diretores de vendas são responsáveis por uma ou mais regiões. ” Banco de Dados I Aula 6 - 14 ©Prof. Lineu Mialaret Exercício 5 - Contexto de Negócio “Nossa empresa aluga pequenos caminhões e utilitários. Nós possuímos 347 escritórios em todo o território nacional e a nossa frota é de 5.780 veículos. Cada escritório tem um nome próprio e um código numérico com 3 dígitos. Cada escritório pode possuir vários veículos sob sua responsabilidade, mas cada veículo deve pertencer a apenas um único escritório. A empresa trabalha com cinco tipos diferentes de veículos: caminhões pequenos, médios e grandes, e utilitários cabine simples e dupla. Cada tipo possui código próprio. Nós precisamos manter informações sobre a data da última manutenção e a data do vencimento do registro para todos os veículos. Para os caminhões precisamos saber ainda a leitura do hodômetro, a capacidade do tanque e se possui rádio ou não. Nossa empresa aluga veículos para pessoas físicas ou para outras empresas e para cada veículo alugado é efetuado um contrato. Das empresas locatárias precisamos armazenar apenas o nome e o endereço. Das pessoas físicas precisamos armazenar o nome, endereço, telefone e o número da habilitação. Cada contrato de aluguel é identificado pelo número do escritório de origem mais um número de identificação do contrato. Nós precisamos armazenar também a data do aluguel, a duração provável, o escritório de retirada, o escritório para entrega, o depósito efetuado e as taxas diárias e por quilômetro.” Banco de Dados I Aula 6 - 15 ©Prof. Lineu Mialaret Exercício 6 - Contexto de Negócio “Hospitais são formados por um ou mais Ambulatórios e cada um destes está em um único Hospital. Médicos clinicam em um único Hospital, cada um deles agregando vários Médicos. Hospitais solicitam exames clínicos em vários Laboratórios, e cada um destes pode ter solicitações de vários Hospitais. Pacientes consultam vários Médicos, e estes são consultados por vários Pacientes. Ambulatórios atendem vários Pacientes, enquanto que estes só podem ser atendidos em um único Ambulatório. Pessoal de apoio está alocado a cada Ambulatório, e cada um destes conta com vários integrantes do Pessoal de apoio. Pacientes realizam vários Exames, e cada Exame é realizado por um único Paciente. Laboratórios fazem vários Exames, e cada um dos Exames é feito em um único Laboratório. Cada Paciente pode receber vários Diagnósticos, e cada Diagnóstico é de um único Paciente.” Banco de Dados I Aula 6 - 16 ©Prof. Lineu Mialaret Exercício 7 - Contexto de Negócio “Uma companhia é organizada em departamentos e cada um destes tem um nome, um número e um empregado que o gerencia. Deseja-se armazenar a data na qual o empregado começou a gerenciar o departamento. Um departamento pode estar em vários locais. Um departamento controla uma quantidade de projetos, os quais possuem número, nome e um único local. Um empregado é caracterizado por um número de matrícula, nome, sexo e salário. Ele está associado a um departamento mas pode trabalhar em vários projetos que não necessariamente são controlados pelo mesmo departamento. Deseja-se armazenar o número de horas que um empregado trabalha em um projeto e o supervisor direto de cada empregado. Cada empregado possui dependentes caracterizados por nome, data de nascimento e grau de parentesco.” Banco de Dados I Aula 6 - 17 ©Prof. Lineu Mialaret Exercício 8 - Contexto de Negócio (1) “Considere um pequeno aeroporto privado. Cada avião tem um número de registro, é de um tipo de avião específico e é armazenado em um hangar particular. Cada tipo de avião tem um número de modelo, uma capacidade e um peso. Cada hangar tem um número, uma capacidade de armazenamento e uma localização. O Banco de Dados do aeroporto também deve manter informações sobre os proprietários de cada avião e sobre os empregados que realizam manutenção no mesmo. Cada avião pode pertencer a um grupo de empresas, enquanto que cada empresa pode ter mais de um avião. Além disso, deseja-se armazenar a data de aquisição do mesmo pelas empresas proprietárias. Cada uma destas empresas é caracterizada pelo CNPJ, nome, endereço e telefone. Cada empregado pode realizar vários serviços de manutenção, os quais podem ser feitos por vários empregados. Um avião pode passar por vários serviços de manutenção e cada um destes serviços é caracterizado pela data da manutenção, número de horas trabalhadas, tipo do serviço feito e finalmente, o número do avião é também usado na identificação de cada serviço. Banco de Dados I Aula 6 - 18 ©Prof. Lineu Mialaret Exercício 8 - Contexto de Negócio (2) Cada piloto tem atributos específicos, como o número da licença e o conjunto de restrições de vôo. Cada empregado tem atributos próprios, como salário, função e data de início no emprego. Todas as pessoas cujas informações são armazenadas têm um CPF, nome, endereço e telefone. A base de dados do aeroporto também mantém informações sobre os aviões que cada piloto pilota e os tipos de aviões que cada empregado pode realizar manutenção. Cada avião pode ser pilotado por vários pilotos e cada piloto pode pilotar vários aviões. Sempre que um vôo é (ou está para ser) realizado, comunicações são feitas com várias torres de comando. Cada torre de comando possui um código e uma localização. Cada empregado pode trabalhar na manutenção de vários tipos de avião e cada modelo de avião pode precisar de vários empregados trabalhando na sua manutenção.” Banco de Dados I Aula 6 - 19 ©Prof. Lineu Mialaret Exercício 9 - Contexto de Negócio (1) “Considere o seguinte sistema de gerenciamento imobiliário simplificado, que visa manter informações sobre clientes, proprietários dos imóveis, contratos de aluguel, funcionários e agências, o qual deve atender os seguintes requisitos de dados persistentes: 1) Cada cliente possui CPF, nome, endereço e uma lista de telefones para contato. 2) Cada cliente é atendido por um único funcionário, o qual é caracterizado pelo número da carteira profissional, nome, endereço, telefone, função e salário. 3) Cada funcionário possui um único supervisor e trabalha em uma única agência. Cada agência tem um código, uma descrição e um funcionário que a gerencia. 4) Deve-se armazenar a data na qual o funcionário começou a gerenciar a agência. Além disso, cada gerente pode gerenciar apenas uma única agência. 5) Um cliente tem uma ou mais preferências por um ou mais tipos de imóveis, onde cada preferência é caracterizada pelo código do cliente, tipo e valor máximo de aluguel. Banco de Dados I Aula 6 - 20 ©Prof. Lineu Mialaret Exercício 9 - Contexto de Negócio (2) 6) Um cliente pode estar associado a vários contratos de aluguel, os quais possuem número, período e valor. Mas cada contrato refere-se a um único cliente. 7) Cada contrato diz respeito a um único imóvel, o qual possui um código, localização, tipo e valor solicitado pelo proprietário. Além disso, cada imóvel possui um único proprietário, que tem CPF, nome e telefones. 8) Um imóvel disponível para negociação pode ser divulgado em vários jornais, os quais possuem um código e um nome. Deve-se armazenar a data e o custo da divulgação de cada imóvel feito por cada jornal.” Banco de Dados I Aula 6 - 21 ©Prof. Lineu Mialaret