Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC Objetivo da Oficina • Teoria e prática de projeto de Bancos de Dados Relacionais (BDRs) • Foco: modelagem conceitual e lógica de BDRs – Dicas avançadas de modelagem entidaderelacionamento (ER) – Regras detalhadas de mapeamento ER-relacional • Exercícios práticos de modelagem – ferramenta acadêmica brModelo • Bibliografia principal – Projeto de Banco de Dados - Carlos Alberto Heuser 5a Ed. Série Livros Didáticos – Instituto de Informática da UFRGS, número 4. Editora Sagra-Luzzatto, 2004. Sumário 1. Projeto de BD: objetivo e etapas 2. Modelagem Conceitual 2.1 Modelo ER 2.2 Dicas de Modelagem 2.3 Exercícios 3. Mapeamento ER-Relacional 3.1 Regras de Mapeamento 3.2 Exercícios Sumário 1. Projeto de BD: objetivo e etapas 2. Modelagem Conceitual 2.1 Modelo ER 2.2 Dicas de Modelagem 2.3 Exercícios 3. Mapeamento ER-Relacional 3.1 Regras de Mapeamento 3.2 Exercícios Projeto de Banco de Dados • Parte integrante do desenvolvimento de um sistema de informação – preocupação com a representação adequada de dados operacionais • Atividade de projeto de BD – modelagem de dados em diferentes níveis de abstração • nível conceitual, lógico e físico Projeto de BD - Etapas Análise de Requisitos Modelagem Conceitual Modelagem Lógica Modelagem Física Projeto de BD - Etapas Análise de Requisitos Modelagem Conceitual Modelagem Lógica Modelagem Física • Coleta de informações sobre os dados, suas restrições e seus relacionamentos na organização • Forma de realização: reuniões com os usuários; observação do funcionamento da organização • Resultado: documento com a especificação de requisitos Projeto de BD - Etapas Análise de Requisitos Especificação de requisitos Modelagem Conceitual Modelagem Lógica Modelagem Física • Modelagem dos dados e seus relacionamentos independente da estrutura de representação do SGBD (modelagem conceitual) • Forma de realização: análise da especificação de requisitos • Resultado: esquema conceitual + restrições de integridade Vantagens da Modelagem Conceitual • Abstração de dados de alto nível – indicação de dados e seus relacionamentos da forma como percebidos no mundo real – independência de detalhes de representação de SGBDs • Fácil compreensão pelo usuário leigo – facilita a validação da modelagem dos dados • Facilita a manutenção dos dados – modificação dos requisitos – migração de SGBD • Tradução para qualquer modelo de SGBD Projeto de BD - Etapas Análise de Requisitos Especificação de requisitos Modelagem Conceitual Esquema conceitual Modelagem Lógica Modelagem Física • Conversão do esquema conceitual para o esquema de representação de um SGBD (esquema lógico) • Forma de realização: aplicação de regras de conversão • Resultado: esquema lógico (tabelas, RIs, transações, consultas relevantes e visões, autorizações de acesso, ...) Projeto de BD - Etapas Análise de Requisitos Especificação de requisitos Modelagem Conceitual • Definição do esquema lógico em um SGBD adequado ao modelo Esquema conceitual • Forma de realização: SQL • Resultado: esquema físico Modelagem Lógica Esquema lógico Modelagem Física Projeto de BD - Etapas Análise de Requisitos Especificação de requisitos Modelagem Conceitual Esquema conceitual Modelagem Lógica Esquema lógico Modelagem Física Esquema físico ou implementação Projeto de BD - Etapas • Modelagem Conceitual – preocupação: correta abstração do mundo real (captura correta da semântica da aplicação) • Modelagem Lógica + Física – preocupação: escolhas corretas na conversão para o esquema do SGBD (relacional) para maximizar o desempenho (distribuição adequada dos dados em tabelas) Sumário 1. Projeto de BD: objetivo e etapas 2. Modelagem Conceitual 2.1 Modelo ER 2.2 Dicas de Modelagem 2.3 Exercícios 3. Mapeamento ER-Relacional 3.1 Regras de Mapeamento 3.2 Exercícios Modelagem Conceitual – Modelo ER • Modelo definido por Peter Chen em 1976 – modelo sofreu diversas extensões e notações ao longo do tempo • Padrão para modelagem conceitual de BD – modelo simples • poucos conceitos – representação gráfica – modelo de fácil compreensão • Um esquema conceitual de BD é também chamado de diagrama ER Modelo ER - Notação a4 (0,1) a1 a5 a6 a2 (0,N) (1,N) E1 a7 papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação a4 (0,1) a1 a5 a6 a2 (0,N) (1,N) E1 a7 papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 entidade (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação a4 (0,1) a1 a5 a6 a2 (0,N) (1,N) E1 a7 papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) entidade fraca E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação a4 (0,1) a1 a5 a6 a2 (0,N) (1,N) E1 a7 entidade associativa papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação a5 a6 a2 (0,N) (1,N) E1 a7 relacionamento a4 (0,1) a1 papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação auto-relacionamento a4 (0,1) a1 a5 a6 a2 (0,N) (1,N) E1 a7 papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação relacionamento ternário a5 a6 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação a4 (0,1) a1 a5 a6 a2 (0,N) (1,N) E1 a7 papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 atributo identificador E7 (1,N) a8 (1,N) E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação atributo monovalorado a5 a6 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação a4 (0,1) a1 a5 a6 a2 (0,N) (1,N) E1 a7 atributo multivalorado papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação a4 (0,1) a1 a5 a6 a2 (0,N) (1,N) E1 a7 atributo composto papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação atributo obrigatório a5 a6 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 atributo opcional papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação especialização parcial a5 a6 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 especialização total papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Modelo ER - Notação especialização exclusiva a5 a6 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 especialização não-exclusiva papel 1 (0,N) (0,3) r1 r3 E2 papel 2 (1,1) (1,N) a3 (1,1) r2 E3 (1,N) a8 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 Sumário 1. Projeto de BD: objetivo e etapas 2. Modelagem Conceitual 2.1 Modelo ER 2.2 Dicas de Modelagem 2.3 Exercícios 3. Mapeamento ER-Relacional 3.1 Regras de Mapeamento 3.2 Exercícios Dicas de Modelagem Conceitual • Entidade X Atributo – a opção por entidade é válida se existem propriedades (atributos e relacionamentos) e transações relevantes para o fato Empregados salário deduçãoIRPF valorBruto Empregados (1,1) (1,N) remuneração Salários categoria valorLíquido gratificação Dicas de Modelagem Conceitual • Entidade X Atributo Composto – a opção por atributo composto é válida se existe noção de agregação imóvel localização valor Pessoas aplicação comercial (setor de crediário de uma loja) localização Pessoas (1,1) (0,N) proprietário aplicação de negócio imobiliário Imóveis valor Dicas de Modelagem Conceitual • Entidade X Atributo Multivalorado – a opção por atributo multivalorado é válida se existe noção de agregação Pessoas telefone(0,N) aplicação comercial (setor de crediário de uma loja) DDD Pessoas (1,N) (0,1) proprietário aplicação: companhia telefônica Linhas Telefônicas número Dicas de Modelagem Conceitual • Entidade Fraca X Atributo – a opção por atributo é válida se o fato não possui outros relacionamentos Pedidos itens (1,N) descrição quantidade valor número quantidade (1,N) (1,1) Pedidos Itens composição (0,N) Produtos (1,1) referência Dicas de Modelagem Conceitual • Entidade X Relacionamento – admite-se representações equivalentes • a opção por relacionamento é recomendada se não existem propriedades associadas ao fato • a opção por entidade é recomendada se existe um identificador explícito para o fato (ex.: ID da consulta) hora CRM nome (0,N) Médicos nome (0,N) consulta Médicos Pacientes data CRM (1,1) nome nome (0,N) (0,N) Consultas data código hora (1,1) Pacientes código Dicas de Modelagem Conceitual • Entidade X Relacionamento – a opção por entidade introduz uma indireção na associação entre fatos • não recomendável, especialmente para casos umpara-um e um-para-muitos – não geram o mesmo banco de dados relacional! CPF nome marca (0,1) Pessoas nome (0,N) Automóveis posse CPF (1,1) Pessoas chassi marca (0,N) (0,1) Posses (1,1) Automóveis chassi Dicas de Modelagem Conceitual • Entidade X Entidade Associativa – admite-se representações equivalentes • levar em conta as recomendações do caso anterior (entidade X relacionamento) nome CRM hora (0,N) Médicos nome (0,N) consulta Consultas data (0,N) intervaloHoras código Pacientes nome (0,N) prescrição Medicamentos código Dicas de Modelagem Conceitual • Entidade X Entidade Associativa nome CRM (1,1) nome (0,N) Médicos (0,N) Consultas data Pacientes código hora (0,N) intervaloHoras (1,1) nome (0,N) prescrição Medicamentos código Dicas de Modelagem Conceitual • Entidade Associativa X Relacionamento N-Ário – recomenda-se a opção por relacionamento n-ário apenas se a participação for obrigatória para todas as entidades • evita problemas de identificação do relacionamento nome CPF nome (1,N) Empregados (1,N) alocação nome Projetos (1,N) Tarefas código código Dicas de Modelagem Conceitual • Entidade Associativa X Relacionamento N-Ário – recomenda-se a opção por entidade associativa se a participação não for obrigatória para todas as entidades nome CPF nome (1,N) Empregados (0,N) alocação Projetos código Alocações (0,N) nome (0,N) execução Tarefas código Dicas de Modelagem Conceitual • Relacionamento X Especialização – a opção por especialização é válida se houver uma associação um-para-um entre as entidades participantes nome CPF nome CPF Pessoas Pessoas (0,N) titulação Professores aplicação universitária formação habilitação (1,N) código Professores tempo experiência aplicação de uma escola de música Dicas de Modelagem Conceitual • Atributo X Especialização – a opção por especialização é valida se houver atributos e/ou relacionamentos relevantes para os fatos especializados função nome nome CPF CPF Pessoas Pessoas CREA Engenheiros nroHabilitação Motoristas Dicas de Modelagem Conceitual • Atributo X Especialização – atenção: atributos opcionais podem sugerir a modelagem de uma entidade especializada nroHabilitação (0,1) veículosHabilitados (0,N) nome CPF Pessoas nome CPF Pessoas nroHabilitação veículosHabilitados (1,N) Motoristas Dicas de Modelagem Conceitual • Limitações no poder de expressão! – exige a documentação de restrições de integridade em anexo (0,N) supervisionado supervisão Empregados (0,1) supervisor RIs: - um empregado não pode ser supervisor de si próprio - ciclos em hierarquias de supervisão não são permitidos (0,N) Alunos (0,N) emCurso G emCurso PG (0,1) Graduação Cursos (0,1) Pós-Graduação aplicação de um depto universitário RIs: - um aluno não pode estar cursando ambos os cursos - um aluno deve estar cursando pelo menos um dos cursos Dicas de Modelagem Conceitual • Consideração de aspectos temporais – atenção: alteram a modelagem conceitual! Empregados valor salário (1,1) instantâneo Empregados data (1,N) remuneração Salários temporal Empregados (1,1) (0,N) lotação Departamentos instantâneo Departamentos temporal data Empregados (1,N) (0,N) lotação Dicas de Modelagem Conceitual • Entidade isolada – pode-se admitir a sua representação Escolas (0,N) (1,1) Home-Pages definição DicasDidáticas (mostrada aleatoriamente sempre que uma home-page é aberta) OK ! Empresa Empregados (1,1) (0,N) lotação Departamentos OK ? Dicas de Modelagem Conceitual • Validação do esquema conceitual – substantivos para nomes de relacionamentos • minimizam a redundância de nomes • nomes mais adequados para futuros conceitos lógicos (tabelas, atributos) – cardinalidade de relacionamentos • na dúvida, definir cardinalidades opcionais – menos restritivas – reduzem os controles de integridade no BD » dependências de inserção e controles na atualização (1,1) (1,1) possui Setores revisão lotação (1,N) (0,N) Máquinas Máquinas Setores Sumário 1. Projeto de BD: objetivo e etapas 2. Modelagem Conceitual 2.1 Modelo ER 2.2 Dicas de Modelagem 2.3 Exercícios 3. Mapeamento ER-Relacional 3.1 Regras de Mapeamento 3.2 Exercícios Ferramenta brModelo • Modelagem conceitual ER – notação Peter Chen • Mapeamento semi-automático ER-relacional • Armazenamento XML de modelagens Exercício Modelagem 1 - Clínica Cada médico que trabalha na clínica é identificado pelo seu CRM, possui um nome, uma data de admissão na clínica e um salário. Um médico tem formação em diversas especialidades (ortopedia, traumatologia, etc), mas só exerce uma delas na clínica. Para todo paciente internado na clínica são cadastrados alguns dados pessoais: código (único), nome, RG, CPF, endereço, telefone(s) para contato e data do nascimento. Um paciente tem sempre um determinado médico como responsável, com um horário de visita diário predeterminado. Pacientes estão sempre internados em quartos individuais, que são identificados por um número e estão em um andar da clínica. Exercício 2 - Museu Cada obra no museu possui um código, um título e um ano. Obras ou são pinturas ou são esculturas. No primeiro caso, são dados importantes o estilo (por exemplo, impressionista). No caso de esculturas, são importantes o peso e os materiais de que é feita (por exemplo, argila, madeira, etc). Uma obra pode estar exposta em um único salão, em uma determinada posição neste salão. Um salão, que geralmente abriga várias obras, é identificado por um número e está em um andar do museu. Certos dados a respeito dos autores de cada obra também são relevantes: código, nome e nacionalidade. Uma obra é produzida por apenas um autor, porém, pode existir mais de uma obra de um mesmo autor no museu. No museu trabalham funcionários, cada um possuindo um ID, CPF, um nome e um salário. Funcionários ou são guardas ou são restauradores de obras. No primeiro caso, mantêm-se dados sobre a hora de entrada e hora de saída. No caso de restauradores, qual a sua especialidade. Um guarda é responsável pela segurança de um único salão, que pode ser vigiado por vários guardas. Um restaurador pode estar realizando a manutenção de várias obras. Uma obra, caso esteja em manutenção, está nas mãos de apenas um restaurador. Para cada manutenção deve-se registrar a data de início e a data prevista de término do trabalho, uma descrição do serviço a ser feito e um custo previsto para realizar a manutenção. Uma manutenção pode estar utilizando uma ou mais matérias-primas. Uma matériaprima possui um código, um nome e uma quantidade em estoque. Uma matéria-prima pode estar sendo utilizada em várias manutenções, em uma certa quantidade. Exercício 3 (se der tempo...) - Biblioteca Um livro tem vários exemplares na biblioteca, como por exemplo, Liv1-Ex1, Liv1-Ex2, Liv2-Ex1. Exemplares estão dispostos em estantes. São mantidos dados detalhados sobre autores e editoras dos livros para fins de consulta. Na biblioteca trabalham bibliotecárias. Cada estante é periodicamente organizada por uma única bibliotecária. Bibliotecárias também realizam empréstimos de exemplares para clientes. Empréstimos cadastrados no BD devem conter a data da devolução e o valor diário da multa, permanecendo no BD até o cliente entregar o exemplar. A bibliotecária que realizou o empréstimo também é relevante de ser mantido no BD. Algumas bibliotecárias são estagiárias. Uma bibliotecária estagiária está sempre sob a responsabilidade de uma bibliotecária efetiva. Deve-se saber também a instituição de ensino da qual a estagiária vem. Defina os atributos que julgares relevantes para os fatos identificados. Sumário 1. Projeto de BD: objetivo e etapas 2. Modelagem Conceitual 2.1 Modelo ER 2.2 Dicas de Modelagem 2.3 Exercícios 3. Mapeamento ER-Relacional 3.1 Regras de Mapeamento 3.2 Exercícios Modelagem Lógica de BD • Foco – mapeamento ER->relacional • Para 1 esquema ER – N esquemas relacionais – existem várias maneiras de “se implementar” uma modelagem conceitual abstrata Prática de Modelagem Lógica • Compromisso entre – evitar um grande número de tabelas • evitar um tempo longo de resposta nas consultas e atualizações de dados – implica minimizar junções entre tabelas – evitar atributos opcionais • evitar tabelas sub-utilizadas – implica evitar desperdício de espaço – evitar muitos controles de integridade no BD • evitar organizações de dados em tabelas que gerem muitos controles de integridade – implica evitar muitas dependências entre dados Processo de Mapeamento 1. Mapeamento preliminar de entidades e seus atributos 2. Mapeamento de especializações 3. Mapeamento de relacionamentos e seus atributos Mapeamento de Entidades Empregados CPF Nome Idade Empregados (CPF, Nome, Idade) Mapeamento de Entidades Fracas • Identificador da entidade forte torna-se – parte da chave primária na tabela correspondente à entidade fraca (tabelaFraca) – chave estrangeira na tabelaFraca (1,1) Pedidos Número (1,N) Composição Número Itens Quantidade Produto Itens (NroPedido, NroItem, Produto, Quantidade) Mapeamento de Atributos PlanoSaúde (0,1) Rua Número Cidade Telefone (1,N) Empregados CPF Nome Idade Endereço Empregados (CPF, Nome, Idade, PlanoSaúde, Rua, Número, Cidade) Telefone(CPF, Número) ou Telefone (CPF, Número) Mapeamento de Atributos PlanoSaúde (0,1) Rua Número Cidade Telefone (1,3) Empregados CPF Nome Idade Endereço Empregados (CPF, Nome, Idade, PlanoSaúde, Rua, Número, Cidade, FoneRes, FoneCom, Celular) Processo de Mapeamento 1. Mapeamento preliminar de entidades e seus atributos 2. Mapeamento de especializações 3. Mapeamento de relacionamentos e seus atributos Mapeamento de Especializações • Três alternativas são geralmente adotadas 1. tabela única para entidade genérica e suas especializações 2. tabelas para a entidade genérica e as entidades especializadas 3. tabelas apenas para as entidades especializadas Alternativa 1 Servidores Função Funcionários CPF Nome Professores Titulação Categoria Servidores (CPF, Nome, Tipo, Função, Titulação, Categoria) • Tipo pode assumir mais de um valor se a especialização é não-exclusiva Alternativa 2 Servidores Função Funcionários CPF Nome Professores Titulação Categoria Servidores (CPF, Nome) Funcionários (CPF, Função) Professores (CPF, Titulação, Categoria) Alternativa 3 Servidores Função Funcionários CPF Nome Professores Titulação Categoria Funcionários (CPF, Nome, Função) Professores (CPF, Nome, Titulação, Categoria) • Não se aplica a especializações parciais Processo de Mapeamento 1. Mapeamento preliminar de entidades e seus atributos 2. Mapeamento de especializações 3. Mapeamento de relacionamentos e seus atributos Mapeamento de Relacionamentos • Recomendações de mapeamento baseiam-se na análise da cardinalidade dos relacionamentos – com base nesta análise, algumas alternativas de mapeamento podem ser adotadas 1. entidades relacionadas podem ser fundidas em uma única tabela 2. tabelas podem ser criadas para o relacionamento 3. chaves estrangeiras podem ser criadas em tabelas a fim de representar adequadamente o relacionamento Relacionamento 1-1 • Obrigatório em ambos os sentidos (1,1) Conferências Sigla Nome (1,1) Organização Número Endereço Comissões eMail DataInstalação Conferências (Sigla, Nome, DataInstCom, NroCom, EndereçoCom, eMailCom) Relacionamento 1-1 • Opcional em um dos sentidos Número (1,1) Pessoas Código (0,1) Posse Nome DataRetirada CarteirasMotorista DataExpedição Validade Categoria alternativa 1 Pessoas (Código, Nome, NúmeroCarteiraMotorista, DataExpedição, Validade, Categoria, DataRetirada) Relacionamento 1-1 • Opcional em um dos sentidos Número (1,1) Pessoas Código (0,1) Posse Nome DataRetirada CarteirasMotorista DataExpedição Validade Categoria alternativa 2 Pessoas (Código, Nome) CarteirasMotorista (Número, DataExpedição, Validade, Categoria, Código, DataRetirada) Relacionamento 1-1 • Opcional em ambos os sentidos (0,1) Homens CPF Nome (0,1) Casamento Mulheres Data CPF Nome alternativa 1 Homens (CPF, Nome) Mulheres (CPF, Nome) Casamento (CPFh, CPFm, Data) Relacionamento 1-1 • Opcional em ambos os sentidos (0,1) Homens CPF (0,1) Casamento Nome Data Mulheres CPF Nome alternativa 2 Homens (CPF, Nome) Mulheres (CPF, Nome, CPFmarido, DataCasamento) Relacionamento 1-N • Obrigatório/opcional no “lado N” (1,N) (1,1) Lotação Empregados Código Nome Departamentos (0,N) CPF Nome Data Departamentos (Código, Nome) Empregados (CPF, Nome, CodDepto, DataLotação) Relacionamento 1-N • Opcional no “lado 1” Ano (1,N) (0,1) Posse Automóveis CPF Pessoas (0,N) Chassi Modelo DataCompra alternativa 1 Pessoas (CPF, Nome) Automóveis (Chassi, Modelo, Ano) Posse (CPF, Chassi, DataCompra) Nome Relacionamento 1-N • Opcional no “lado 1” Ano (1,N) (0,1) Posse Automóveis CPF Nome Pessoas (0,N) Chassi Modelo DataCompra alternativa 2 Pessoas (CPF, Nome) Automóveis (Chassi, Modelo, Ano, CPF, DataCompra) Relacionamento N-M • Obrigatório/opcional em ambos os sentidos (1,N) Empregados Participação (0,N) CPF (1,N) Código Nome Projetos (0,N) Nome DataInício Empregados (CPF, Nome) Projetos (Código, Nome) Participação (CPF, Código, DataInício) Auto-Relacionamento • Valem as mesmas recomendações anteriores (0,1) Empregados (0,N) CPF Nome gerente gerência subordinado Idade Alternativas: 1) Empregados(CPF, Nome, Idade) Gerência(CPFe, CPFg) 2) Empregados(CPF, Nome, Idade, CPFg) Relacionamentos com Entidades Associativas • Valem as mesmas recomendações anteriores – questão: “localizar” a entidade associativa Empréstimos (0,N) Livros (0,1) Clientes empréstimo DataDevolução (0,N) (1,1) cadastro Bibliotecárias alternativa 2 Livros (Código, ..., CPFcli, DataDevolução, CPFbibl) Clientes (CPFcli, ...) Bibliotecárias(CPFbibl, ...) Relacionamentos com Entidades Associativas • Outro exemplo CPF Clientes (1,N) (1,N) vínculo Contas Número Correntistas Número DataExp (1,1) CartõesMagnéticos Concessão (0,1) alternativa 1 Correntista(CPF, NroCta, NroCartão, DataExp) Relacionamentos Ternários • Gera uma tabela para o relacionamento Sigla Instituições (0,N) Projetos (1,N) Pesquisa Caso N:N:N DataInício (1,N) Pesquisadores CPF Instituições (Sigla, ...) Projetos (Número, ...) Pesquisadores (CPF, ...) Pesquisa (Sigla, Número, CPF, DataInício) Número Relacionamentos Ternários Código Produtos (0,N) Cidades (0,N) Distribuição (0,1) Caso 1:N:N CPF Distribuidores Produtos (Código, ...) Cidades (Código, ...) Distribuidores (CPF, ...) Distribuição (CodProduto, CodCidade, CPF) Código Relacionamentos Ternários CPF Nome Empregados Atividades (0,N) Código Descrição (1,1) Remuneração (1,1) Caso 1:1:N ID Salários Valor Empregados (CPF, Nome) Atividades (Código, Descrição) Salários (ID, valor) Remuneração (CodAtiv, CPF, ID-Salario) • Uma das RIs pode ser chave primária Relacionamentos Ternários Código Peso Painéis (0,1) Motores (0,1) Veículo Caso 1:1:1 (0,1) Latarias Painéis (Código, Peso) Motores (Código, Fabricante) Latarias (Código, Modelo) Veículo (CodP, CodM, CodL) Código Modelo • Uma das RIs pode ser chave primária Código Fabricante Sumário 1. Projeto de BD: objetivo e etapas 2. Modelagem Conceitual 2.1 Modelo ER 2.2 Dicas de Modelagem 2.3 Exercícios 3. Mapeamento ER-Relacional 3.1 Regras de Mapeamento 3.2 Exercícios Exercícios • Mapeamento das modelagens conceituais definidas nos exercícios anteriores