1,N - IFC
Transcrição
1,N - IFC
BANCO DE DADOS - PROJETO CONCEITUAL DE BD Prof. Angelo Augusto Frozza, M.Sc. PROJETO CONCEITUAL | Levantamento de requisitos Modelagem Conceitual | Modelo ER | PROJETO CONCEITUAL Parte integrante do Projeto de um BD | Etapas: y y y y Levantamento de requisitos Projeto conceitual Projeto lógico Projeto físico | Preocupação com a representação adequada dos dados da organização | Definição de esquemas de dados em diferentes níveis de abstração MODELAGEM CONCEITUAL Abstração de alto nível dos fatos relevantes do mundo real que devem se tornar persistentes (dados operacionais) | Identifica : y Objetos concretos (pessoa, livro y Objetos abstratos – conceitos (endereço, pedido etc.) etc.) MODELAGEM CONCEITUAL | Vantagens de uma documentação conceitual de dados y independente de detalhes de implementação em um SGBD facilita a definição da semântica dos dados de um domínio | melhor compreendido por usuários leigos | y pode ser mapeado para qualquer modelo de BD y facilita a manutenção dos dados modificação de requisitos de dados | engenharia reversa (desempenho, ...) | y facilita a migração de SGBD | usado como modelo intermediário MODELO ER | Modelo y sofreu diversas extensões e notações ao longo do tempo | Padrão y para modelagem conceitual de BD modelo simples | y y definido por Peter Chen em 1976 poucos conceitos representação gráfica fácil compreensão | Um esquema conceitual de BD é também chamado de diagrama ER CONCEITOS DO MODELO ER | Entidade | Relacionamento | Atributo | Generalização e Especialização CONCEITOS DO MODELO ER | Entidade y | normal, fraca ou associativa Relacionamento y y auto-relacionamento, binário ou n-ário cardinalidades | y um-para-um, um-para-muitos ou muitos-para-muitos participação opcional ou obrigatória das entidades envolvidas CONCEITOS DO MODELO ER | Atributo y tipos | | identificador, monovalorado, multivalorado, composto, obrigatório e opcional Generalização e Especialização y y total ou parcial exclusiva ou não-exclusiva MODELO ER - NOTAÇÃO a5 a6 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 r1 papel 2 (1,1) a3 (1,1) r2 (1,N) E7 E4 a8 (1,N) (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) E3 papel 1 (0,N) (0,3) E6 E9 a10 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 MODELO ER - NOTAÇÃO a5 a6 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 r1 papel 2 (1,1) a3 (1,1) r2 (1,N) entidade E7 E4 a8 (1,N) (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) E3 papel 1 (0,N) (0,3) E6 E9 a10 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 MODELO ER - NOTAÇÃO a5 a6 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 r1 papel 2 (1,1) a3 (1,1) r2 (1,N) E7 E4 a8 (1,N) entidade fraca (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) E3 papel 1 (0,N) (0,3) E6 E9 a10 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 MODELO ER - NOTAÇÃO a5 a6 a1 a2 (0,N) (1,N) E1 a7 E3 r1 papel 2 (1,1) a3 r2 E7 E4 (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) a8 (1,N) papel 1 (0,N) (0,3) (1,N) (1,1) entidade associativa a4 (0,1) E6 E9 a10 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 r1 a3 r2 (1,N) E7 E4 (1,1) r4 p (0,N) a9 E5 r3 E2 papel 2 (1,1) (1,1) a8 (1,N) papel 1 (0,N) (0,3) (1,N) E3 relacionamento a4 (0,1) a1 E6 E9 a10 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 MODELO ER - NOTAÇÃO a5 a6 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 E3 r1 papel 2 (1,1) a3 r2 E7 E4 (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) a8 (1,N) papel 1 (0,N) (0,3) (1,N) (1,1) auto-relacionamento 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 r1 E3 papel 2 (1,1) a3 r2 (1,N) E7 E4 a8 (1,N) (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) (1,1) papel 1 (0,N) (0,3) 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 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 r1 papel 2 (1,1) a3 (1,1) r2 atributo E7 identificador (1,1) (1,N) E4 a8 (1,N) r4 p (0,N) a9 E5 r3 E2 (1,N) E3 papel 1 (0,N) (0,3) 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 r1 E3 papel 2 (1,1) a3 r2 (1,N) E7 (1,1) E4 a8 (1,N) r4 p (0,N) a9 E5 r3 E2 (1,N) (1,1) papel 1 (0,N) (0,3) 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 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 E3 r1 papel 2 (1,1) a3 r2 E7 E4 (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) a8 (1,N) papel 1 (0,N) (0,3) (1,N) (1,1) atributo multivalorado 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 a4 (0,1) a1 a2 (0,N) (1,N) E1 a7 E3 r1 papel 2 (1,1) a3 r2 E7 E4 (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) a8 (1,N) papel 1 (0,N) (0,3) (1,N) (1,1) atributo composto E6 E9 a10 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 E3 r1 papel 2 (1,1) a3 r2 E7 E4 (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) a8 (1,N) papel 1 (0,N) (0,3) (1,N) (1,1) atributo opcional 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 E3 r1 papel 2 (1,1) a3 r2 E7 E4 (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) a8 (1,N) papel 1 (0,N) (0,3) (1,N) (1,1) especialização total 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 E3 r1 papel 2 (1,1) a3 r2 E7 E4 (1,1) r4 p (0,N) a9 E5 r3 E2 (1,N) a8 (1,N) papel 1 (0,N) (0,3) (1,N) (1,1) especialização não-exclusiva E6 a10 E9 E11 E8 a11 (1,1) (1,N) r6 r5 (0,1) (0,N) E10 E12 a12 a13 QUESTÕES DE REPRESENTAÇÃO | Entidade X Atributo y 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 Empregados valorBruto (1,1) (1,N) remuneração Salários categoria valorLíquido gratificação QUESTÕES DE REPRESENTAÇÃO | Entidade X Atributo Composto y a opção por atributo composto é válida se existe noção de agregação imóvel localização valor Pessoas domínio comercial (setor de crediário de uma loja) localização Pessoas (1,1) (0,N) domínio imobiliário proprietário Imóveis valor QUESTÕES DE REPRESENTAÇÃO | Entidade X Atributo Multivalorado y a opção por atributo multivalorado é válida se existe noção de agregação Pessoas telefone(0,N) domínio comercial (setor de crediário de uma loja) DDD Pessoas (1,N) (0,1) proprietário domínio de uma companhia telefônica Linhas Telefônicas número QUESTÕES DE REPRESENTAÇÃO | Entidade Fraca X Atributo y 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 QUESTÕES DE REPRESENTAÇÃO | Entidade X Relacionamento y 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) | QUESTÕES DE REPRESENTAÇÃO | Entidade X Relacionamento hora CRM nome (0,N) Médicos nome (0,N) consulta código Pacientes data nome CRM (1,1) Médicos nome (0,N) (0,N) Consultas data (1,1) Pacientes hora código QUESTÕES DE REPRESENTAÇÃO | Entidade X Relacionamento y a opção por entidade introduz uma indireção na associação entre fatos | não recomendável, especialmente para casos um-para-um e um-para-muitos QUESTÕES DE REPRESENTAÇÃO | Entidade X Relacionamento CPF nome marca (0,1) Pessoas nome (0,N) posse Automóveis CPF (1,1) Pessoas chassi marca (0,N) (0,1) Posses (1,1) Automóveis chassi QUESTÕES DE REPRESENTAÇÃO | Entidade X Entidade Associativa y admite-se representações equivalentes | levar em conta as recomendações do caso anterior (entidade X relacionamento) QUESTÕES DE REPRESENTAÇÃO | Entidade X Entidade Associativa nome CRM hora (0,N) Médicos nome (0,N) consulta data Consultas (0,N) intervaloHoras código Pacientes nome (0,N) prescrição Medicamentos código QUESTÕES DE REPRESENTAÇÃO | Entidade X Entidade Associativa nome CRM (1,1) nome (0,N) (0,N) Médicos Consultas Pacientes código hora data (0,N) intervaloHoras (1,1) nome (0,N) prescrição Medicamentos código QUESTÕES DE REPRESENTAÇÃO | Entidade Associativa X y 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 QUESTÕES DE REPRESENTAÇÃO | Entidade Associativa X nome Relacionamento N-Ário CPF nome (1,N) Empregados (1,N) alocação nome Projetos (1,N) Tarefas código código QUESTÕES DE REPRESENTAÇÃO | Entidade Associativa X nome Relacionamento N-Ário CPF nome (1,N) Empregados (0,N) alocação Projetos código Alocações (0,N) nome (0,N) execução Tarefas código QUESTÕES DE REPRESENTAÇÃO | Relacionamento X Especialização y a opção por especialização é válida se houver uma associação um-para-um entre as entidades participantes QUESTÕES DE REPRESENTAÇÃO | Relacionamento X Especialização nome nome CPF CPF Pessoas Pessoas (0,N) formação titulação habilitação (1,N) Professores domínio universitário código tempo experiência domínio de uma escola de música Professores QUESTÕES DE REPRESENTAÇÃO | Atributo X Especialização y a opção por especialização é valida se houver atributos e/ou relacionamentos relevantes para os fatos especializados nome função nome CPF CPF Pessoas Pessoas CREA Engenheiros nroHabilitação Motoristas QUESTÕES DE REPRESENTAÇÃO | Atributo X Especialização y 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 QUESTÕES DE REPRESENTAÇÃO | Limitações no poder de expressão y exige a documentação de restrições de integridade em anexo QUESTÕES DE REPRESENTAÇÃO | Limitações no poder de expressão (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 (1,1) Graduação Cursos (1,1) Pós-Graduação RI: um aluno não pode estar cursando ambos os cursos domínio de um depto universitário QUESTÕES DE REPRESENTAÇÃO | Consideração de aspectos temporais y alteram a modelagem conceitual Empregados salário instantâneo valor (1,1) Empregados data (1,N) remuneração temporal Salários QUESTÕES DE REPRESENTAÇÃO | Consideração de aspectos temporais Empregados (1,1) (0,N) Departamentos lotação instantâneo data Empregados (1,N) (0,N) lotação Departamentos temporal QUESTÕES DE REPRESENTAÇÃO | Entidade isolada y admite-se a sua representação Escolas (0,N) (1,1) definição DicasDidáticas Home-Pages (mostrada aleatoriamente sempre que uma home-page é aberta) Empresa Empregados (1,1) (0,N) lotação Departamentos QUESTÕES DE REPRESENTAÇÃO | Validação do esquema conceitual y verificar eventuais redundâncias... | pesar desempenho de consultas X controles de integridade e volume de dados QUESTÕES DE REPRESENTAÇÃO | Validação do esquema conceitual (1,1) lotação Setores (1,1) (0,N) composição Departamentos (0,N) Empregados departamento (0,1) lotação Setores (1,1) (1,N) (0,N) (1,1) (0,N) Máquinas Fábricas composição bens QUESTÕES DE REPRESENTAÇÃO | Sugestões finais y substantivos para nomes de relacionamentos descrevem ação ou estado | minimizam a redundância de nomes | nomes mais adequados para prováveis entidades lógicas | y 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 | QUESTÕES DE REPRESENTAÇÃO | Sugestões finais (1,1) (1,1) possui Setores revisão lotação (1,N) (0,N) Máquinas Máquinas Setores EXERCÍCIO DE MODELAGEM ER Pizzaria Uma pizzaria de tele-entrega apresenta um cardápio composto por diversos tipos de pizza, cujos dados são: número do item, nome da pizza, ingredientes e preços das pizzas pequena, média e grande. Na pizzaria trabalham funcionários que emitem pedidos de pizzas. Cada pedido possui um número e uma data de emissão, além do nome, telefone e endereço do cliente que solicitou o pedido. Um pedido é emitido por apenas um funcionário. Um pedido solicita uma ou mais pizzas do cardápio, informando tamanhos (pequena, média ou grande) e quantidades desejados de cada pizza. O cliente pode desejar retirar um ou mais ingredientes de alguma pizza solicitada. Existem funcionários que são entregadores, ou seja, são responsáveis pela entrega de um ou mais pedidos. Deve-se saber o número do telefone celular destes funcionários para um eventual contato durante uma entrega. Um pedido destina-se a um bairro. Para cada bairro existe um tempo máximo de espera para a entrega de um pedido. Você é livre para definir outros atributos que julgar relevantes. |