Modelagem E-R Exercícios e Verificação IME- Instituto Militar de Engenharia Mini-mundos Biblioteca Escola de música Oficina Distribuidora de filmes MCRC - IME/RJ 1 Biblioteca Sistema de controle e gerenciamento de empréstimos de livros de uma biblioteca acadêmica: A biblioteca dispõe de livros, também denominados títulos. Estes possuem nome, autores e editoras. Cada título pertence a uma área de conhecimento e possui um código único de identificação. Cada título possui vários exemplares. Cada exemplar possui um código único de identificação. Cada título pode ter vários autores e um mesmo autor pode ter escrito vários títulos. Um autor possui código, nome, telefone e endereço. As editoras possuem código, nome, telefone e endereço. As áreas de conhecimento possuem código e uma descrição. Usuários, que podem ser alunos, professores ou funcionários, tomam livros emprestados por uma semana. A data de empréstimo é importante no processo. Cada usuário possui um código, nome, telefone e endereço Cada título possui várias palavras-chave e uma palavra-chave pode estar ligada a vários títulos. Uma palavra-chave possui código e descrição. MCRC - IME/RJ Biblioteca área codigo descricao (1,1) associa Palavra-chave (1,n) indexa (0,n) (0,n) título (1,n) (1,n) (1,1) autoria disponibiliza autor codigo nome telefone endereco (1,n) exemplar codigo descricao edita (1,n) editora codigo nome telefone endereco (1,1) usuário codigo nome (0,5) (0,1) codigo nome telefone endereco tipo empresta codigo MCRC - IME/RJ data 2 MCRC - IME/RJ Considerações A disponibilização de um exemplar não deveria envolver o local (estante 15b, por exemplo)? Professor não teria outros relacionamentos com título? Sugerir, avaliar, fixar como livro-consulta? Se palavra-chave e área de conhecimento têm as mesmas propriedades pq não generalizá-las? Formação de código diferente, cardinalidades diferentes nos relacionamentos... Alguma outra generalização possível? Questão avançada: exemplar não deveria “herdar” os atributos de título? Mas não se configura como classe específica (herança) MCRC - IME/RJ 3 Escola de Música Uma escola de música precisa manter uma base de dados organizada com o objetivo de prover informações sobre músicos, orquestras, sinfonias e instrumentos: Cada orquestra é catalogada contendo o seu nome, cidade, país e data correspondentes à sua criação; Orquestras executam sinfonias, as mais variadas. Os profundos conhecedores de música são capazes até de selecionar a orquestra que melhor desempenha uma determinada sinfonia. De cada uma sinfonia, é possível saber o seu nome, o compositor e a data de sua criação; Orquestras são constituídas de músicos, os mais variados, de acordo com a sua função dentro da mesma: maestro, flautista, etc. Cada músico é catalogado contendo: nome do músico, identidade, nacionalidade e data de nascimento. Um músico só pode pertencer a uma orquestra; Músicos tocam sinfonias, porém em alguns casos, alguns músicos podem mudar de função segundo a sinfonia (por exemplo, um violinista pode virar maestro). A data em que um músico apresenta uma determinada sinfonia também é importante no contexto. Cada músico pode ser apto a tocar vários instrumentos, mas em cada sinfonia toca apenas um instrumento, pois depende de sua função na sinfonia. MCRC - IME/RJ Escola de Música Nome compositor data_criação data instrumento Id nome modelo (0,n) (0,n) (0,n) sinfonia apres função usa (0,1) (1,n) (0,n) (0,n) apto a (0,n) id nome nacionalida nascim (0,n) músico (0,1) comp (20,n) (0,n) executa orquestra Nome cidade país data_criação desempenho MCRC - IME/RJ 4 MCRC - IME/RJ Considerações Função poderia ser atributo? O relac apto a é redundante? Falta um relac. entre musico e inst.? MCRC - IME/RJ 5 Oficina Mecânica Sistema de controle e gerenciamento de execução de ordens de serviço em uma oficina mecânica: Clientes levam veículos à oficina mecânica para serem consertados ou para passarem por revisões periódicas. Cada veículo é designado a uma equipe de mecânicos que identifica os serviços a serem executados e preenche uma ordem de serviço (OS) e prevê uma data de entrega. A partir da OS, calcula-se o valor de cada serviço, consultando-se uma tabela de referência de mão-de-obra. O valor de cada peça necessária à execução do serviço também é computado. O cliente autoriza a execução dos serviços e a mesma equipe responsável pela avaliação realiza os serviços. Clientes possuem código, nome, endereço e telefone. Veículos possuem código, placa e descrição. Cada mecânico possui código, nome, endereço e especialidade. Cada OS possui um número, uma data de emissão, um valor e uma data para conclusão dos trabalhos. Uma OS pode ser composta de vários ítens (serviços) e um mesmo serviço pode constar em várias ordens de serviço. Uma OS pode envolver vários tipos de peças e um mesmo tipo de peça pode ser necessária em várias ordens de serviço. MCRC - IME/RJ Oficina Mecânica possui telefone pessoa id nome endereço (0,n) (1,1) cliente t,i (0,n) orçam mecânico (1,n) (0,n) especialidad comp (1,n) código placa descrição veículo (1,1) num-os data_entrega data_emissao os (0,n) comp (1,n) equipe Id_equipe desc item id descr valor t,e serviço peça (0,n) demanda (0,n) MCRC - IME/RJ 6 MCRC - IME/RJ MCRC - IME/RJ 7 Considerações Não preciso colocar valor em OS pois é um valor derivável Cliente possui um veículo por um dado período... O veículo pode voltar à oficina sob outro cliente A equipe não teria um responsável? A OS teria um status? Especificada, Aprovada, Concluída, ... MCRC - IME/RJ Distribuidora de filmes A empresa de distribuição possui vários cinemas, em diversas localidades; Cada cinema possui uma identificação única, um nome fantasia, um endereço completo, incluindo rua, avenida, bairro, município, estado e sua capacidade de lotação; Os filmes podem ser dos mais variados tipos e gêneros; Cada filme é registrado com um título original, e se for filme estrangeiro, possuirá também o título em Português, o gênero, sua duração, sua impropriedade e seu país de origem, informações sobre os atores que compõem seu elenco, e seu diretor. Existirá um único diretor para cada filme; Alguns cinemas apresentam mais de um filme em cartaz, sendo nestes casos, sessões alternadas com um filme e outro; As sessões possuem horários que variam de acordo com a duração do filme, havendo sempre um intervalo de aproximadamente 15 minutos entre elas; Os atores de um filme podem, obviamente, atuar em diversos filmes, assim como o diretor de um filme pode também ser ator neste filme ou ainda mais, ser ator em outro filme. Um ator possui as seguintes características: um número de identificação, um nome, uma nacionalidade e uma idade; As sessões de cinema devem ter seu público registrado diariamente, para que se permita a totalização dos assistentes quando o filme sair de cartaz, ou a qualquer instante; MCRC - IME/RJ 8 Distribuidora de filmes id titulo genero duração Id localizacao capacidade cinema (0,n) (0,n) Filme estrangeiro p,e filme (0,n) (1,n) diretor tempo classe (1,n) (1,1) (0,n) data feriado festival atua dirige sessão horario publico Tit-ingles gênero Descrição Impropriedade País-origem ator t,i id nome nacionalid idade pessoa MCRC - IME/RJ MCRC - IME/RJ 9 Considerações Não poderia colocar horário como um atributo identificador de sessão? Generalizar pessoa não afeta e melhor organiza o modelo Seria melhor manter filme estrangeiro como classe genérica e filme brasileiro como classe específica? Revisar os atributos usados em filme e filme estrangeiro, o que vc mudaria? MCRC - IME/RJ Verificação de um Esquema Não existe um esquema único para representar uma realidade Mas há critérios que devem ser observados Correção Completude Redundância Aspecto temporal MCRC - IME/RJ 10 Corretude Erro sintático: Não respeitar as regras do modelo ER • associações entre relacionamentos, ou entre entidades, diretamente Erro semântico: Estabelecer associações incorretas • atributos em entidades erradas, ou • uma entidade aparece como atributo em outra entidade • Fundir em um único relacionamento entre entidades A e B, dois relacionamentos diferentes MCRC - IME/RJ Completude Mais difícil de verificar Verificar as consultas necessárias Verificar as atualizações necessárias Apuração do público por município, por cinema, e por sessão de cada cinema; Dado um determinado ator, localizar os cinemas onde estão em cartaz os filmes em que este ator atua; Em quais cinemas está sendo exibido um determinado gênero de filme; Em quais cinemas estão sendo exibidos filmes nacionais. Cadastrar filmes antes mesmo de ter o plano de sua exibição; Planejar a exibição de filmes com 1 mês de antecedência; MCRC - IME/RJ 11 Redundância Um esquema deve ser mínimo Não deve conter conceitos redundantes Relacionamentos redundantes que podem ser obtidos através da combinação de outros relacionamentos Se retirados, não há perda de informação FABRICA RESIDE COMP DEPTO REDUNDÂNCIA MAQUINA EM USO MCRC - IME/RJ Redundância Atributos redundantes Atributos que podem ser obtidos por cálculos sobre outros elementos do esquema Ex.: tot-emp pode ser obtido contabilizando-se o número de empregados por departamento, e o codigo do departamento em empregado pode ser obtido através do relacionamento lotação cod-depto tot-emp DEPTO EMPREGADO cod-emp cod-depto LOTAÇÃO MCRC - IME/RJ 12 Aspecto Temporal Manter histórico de alterações Ex.: Na oficina podemos ter que tratar um carro que passa por vários proprietários Atributos que mudam salário EMPREGADO EMPREGADO Qual seria outra opção? (1,n) RECEBE (1,1) data valor SALARIO MCRC - IME/RJ Aspecto Temporal Relacionamentos que mudam Adiciona-se um atributo para identificar o momento de uma instância do relacionamento Relacionamentos 1:1 ou 1:n, tornam-se n:m EMPREGADO EMPREGADO (1,1) ALOCAÇÃO (1,n) BAIUCA (1,n) data ALOCAÇÃO Pq precisa de um identificador no relacionamento? (1,n) BAIUCA MCRC - IME/RJ 13 Outras considerações Entidades isoladas Entidades sem atributo Será que precisam existir como entidades? Relacionamentos n-ários Será que faltam relacionamentos? Será que deixamos de identificá-los? Restrições Que outras restrições precisamos explicitar que o modelo ER não permitiu? MCRC - IME/RJ 14