Baixe o app para aproveitar ainda mais
Prévia do material em texto
IF64A-Banco de Dados 1 pbugatti@utfpr.edu.br Prof. Pedro Henrique Bugatti Mapeamento o Na primeira aula sobre mapeamento… o procedimento básico em 7 passos o alternativas de mapeamento: o CR binários 1:1 ! o Abstrações o Agregação o Generalização/Especialização 2 3 o O MER-X suporta duas abstrações de dados: o Agregação o Generalização/Especialização ! o Extensão do Mapeamento MER-MREL para suporte às abstrações Mapeamento de Abstrações de Dados AGREGAÇÃO 4 o Como mapear Agregação se: o agregação é identificada por atributo próprio + chave(s) de CE(s) que participa(m) do CR gerador 5 Mapeamento de Agregação Data_Ingresso Pessoa Universidade IngressaN M Aluno Nome_UnivNome_Pessoa CPF_Pessoa CGC_Univ 6 Mapeamento de Agregação Data_Ingresso Pessoa Universidade IngressaN M Aluno Nome_UnivNome_Pessoa CPF_Pessoa CGC_Univ Orienta Professor Nome_Professor CPF_Professor P S Exercícios ! 1) Em um hospital, um paciente pode realizar consultas com vários médicos. Cada consulta pode ter vários exames realizados. Devem ser armazenados os dados da consulta (data, horário e motivo) e os dados dos exames (descrição e resultado). ! ! ! 2) Em uma dada biblioteca um cliente pode retirar vários livros e um livro pode ser retirado por vários clientes. Para toda retirada devem ser armazenadas a data de retirada e a data de devolução. Os livros devolvidos com atraso têm uma multa. Sobre a multa, devem ser armazenados a quantidade de dias e valor. 7 GENERALIZAÇÃO/ ESPECIALIZAÇÃO 8 9 1. Mapear todos os CEs Fortes que não fazem parte de ocorrências de generalização 2. Mapear todos os CEs Fracas que não fazem parte de ocorrências de generalização ! 3. Mapear todos os CR de cardinalidade 1:1 do DER 4. Mapear todos os CR de cardinalidade 1:N do DER 5. Mapear todos os CR de cardinalidade M:N do DER 6. Mapear todos os CR de Grau >2 do DER 7. Mapear todos os Atributos Multivalorados de CEs e CRs do DER Alterando os 7 Passos ... Passo 2a) Passo 2A • Analisar uma a uma todas as ocorrências da abstração de generalização e escolher a melhor opção de mapeamento • Cada ocorrência da abstração é mapeada de maneira independente (mesmo dentro de uma mesma hierarquia) Mapeamento da Generalização 11 ! Três alternativas principais: 1. Mapear o CEG e os CEEs em relações diferentes 2. Mapear o CEG e todos os CEEs em uma única relação 3. Mapear cada CEE (e apenas) em sua própria relação, junto com seus respectivos atributos genéricos Mapeamento da Generalização 12 ! ! Cada alternativa pode ser mapeada de mais de uma maneira ! Procedimento Padrão de Mapeamento Mapeamento da Generalização 13 Mapear o CEG e os CEEs em relações diferentes Alternativa 1 14 Alternativa 1 Procedimento Padrão 1 CEG CEE1 CEE2 CEEi Ch AG AE1 AE2 AEi ... D CEG = { Ch, AtC, AG } ! CEE1 = { Ch, AE1} ! ... ! CEEi = { Ch, AEi} AtC AtC 15 o a ocorrência da generalização deve ser mutuamente exclusiva (disjunção). Alternativa 1 Procedimento Padrão 1 (cont.) CEG = { Ch, AtC, AG } CEE1 = { Ch, AE1} ... CEEi = { Ch, AEi} 16 CEG = { Ch, AG } ! CEEi = { Ch, AEi } ! CEC={ Ch, AtC } Alternativa 1 Procedimento Padrão 2 CEG CEE1 CEE2 CEEi Ch AG AE1 AE2 AEi ... O AtC AtC 17 o Semelhante ao procedimento 1: usado quando a Generalização é definida com sobreposição Alternativa 1 Procedimento Padrão 2 (cont.) CEG = { Ch, AG } ! CEC = { Ch, AtC} ! CEE1 = { Ch, AE1} ... CEEi = { Ch, AEi} 18 o Alternativa1 é interessante quando: ! o existem poucos CE Específicos (todos conhecidos), cada um com diversos atributos específicos ! o consultas tipicamente se concentram em um ou poucos CEEs de cada vez ! o Aplicável a Especialização Total ou Parcial Alternativa 1 19 Mapear o CEG e todos os CEEs em uma única relação Alternativa 2 20 CEG = { Ch, AtC, AG, AE1, ... AEi } Alternativa 2 Procedimento Padrão 3 CEG CEE1 CEE2 CEEi Ch AG AE1 AE2 AEi ... D AtC AtC 21 ogeneralização deve ser mutuamente exclusiva o o valor de AtC deve ser não nulo o em cada tupla apenas os atributos correspondentes ao subtipo da entidade podem possuir valor o e os atributos correspondentes aos demais subtipos devem ser sempre mantidos nulos Alternativa 2 Procedimento Padrão 3 (cont.) CEG = { Ch, AtC, AG, Ae1, ... Aek } 22 o Generalização definida com sobreposição o Se uma entidade pertence a um CEE, então na tupla pelo menos 1 atributo correspondente ao CEE deve possuir valor não nulo Alternativa 2 Procedimento Padrão 4 CEG = { Ch, AtC, AG, AE1, ... AEi } CEG CEE1 CEE2 CEEi Ch AG AE1 AE2 AEi ... O AtC AtC 23 o Indica a quais CEEs um entidade pertence usando valores booleanos ! CEG = { Ch, AG, AE1,... AEi, BCEE1, .... BCEEi} Alternativa 2 Procedimento Padrão 5 CEG CEE1 CEE2 CEEi Ch AG AE1 AE2 AEi ... O AtC AtC 24 o Alternativa 2 é interessante quando: ! o existem poucos atributos específicos nos CEEs ! o houver a possibilidade de existirem especializações (sem atributos específicos) não previstas no projeto ! o Aplicável a Especialização Total ou Parcial Alternativa 2 25 Mapear cada CEE (e apenas) em sua própria relação, junto com seus respectivos atributos genéricos Alternativa 3 26 CEE1 = { Ch, AG, AE1 } ... ! CEEi = { Ch, AG, AEi } Alternativa 3 Procedimento Padrão 6 CEG CEE1 CEE2 CEEi Ch AG AE1 AE2 AEi ... AtC AtC 27 Alternativa 3 Procedimento Padrão 7 CEE1 = { Ch, AG, AE1 } ... ! CEEi = { Ch, AG, AEi } ! CEC={ Ch, AtC} CEG CEE1 CEE2 CEEi Ch AG AE1 AE2 AEi ... D AtC AtC ! ! Como o atributo AtC entra na relação sem ser chave, este procedimento atende as s i tuações em que a especialização é mutuamente exclusiva 28 Alternativa 3 Procedimento Padrão 8 CEG CEE1 CEE2 CEEi Ch AG AE1 AE2 AEi ... O AtC AtC CEE1 = { Ch, AG, AE1 } ... ! CEEi = { Ch, AG, AEi } ! CEC={ Ch, AtC} 29 o Alternativa 3 é interessante quando: o é frequente o acesso a cada entidade em sua totalidade, incluindo seus dados genéricos e específicos o aplicável apenas para Especialização Total Alternativa 3 30 o Atributos específicos que podem identificar univocamente o CEE podem ser colocadas como chaves secundárias Casos Especiais Pessoa = {CPF, Nome, Vinculo} ! Aluno = {CPF, RA Curso} CPF Nome RA Curso Pessoa Professor Aluno D Vínculo ‘docente’ ‘aluno’ Vinculo Exercício: mapear para o Modelo Relacional, discutindo, para cada ocorrência da abstração, o porquê da opção de mapeamento escolhida PessoaCPF Nome Endereço VínculoRA Curso N#Func Função Titulação Aluno Funcionário Docente Vínculo Graduação Pós-Grad. Assistente Doutor Semestre Curso Titulação Área Orienta Pós? O O D 32 Exercício Seguradora - Mapeamento Em uma seguradora de automóveis, um cliente tem pelo menos um carro e um carro pertence a um único cliente. Cada carro possui um número de acidentes associados a ele, devendo ser armazenados a data, o local e uma descrição do acidente. O acidente pode ser com vítima ou sem vítima. Se for com vítima, devem ser armazenados um histórico (contendo os nomes das vítimas e o tipo de lesão sofrida) e o valor gasto com indenização das vítimas. Se for sem vítima deve ser armazenado o valor gasto com danos materiais.33 Exercício Biblioteca - Mapeamento Em uma biblioteca há vários tipos de materiais (livros, revistas e audiovisual). Para os livros são armazenados o autor e a editora; as revistas têm número, volume e data; os materiais audiovisuais têm o nome do diretor e o tempo de duração. Um cliente pode retirar vários materiais e um material pode ser retirado por vários clientes. Para toda retirada devem ser armazenadas a data de retirada e a data de devolução. Os materiais devolvidos com atraso têm uma multa. Sobre a multa, devem ser armazenados a quantidade de dias e o valor. Referências ! ! ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. São Paulo: Pearson Addison Wesley, 2005. ! ! Sousa, E. P. M. Notas de aula – SCC240. ICMC- USP. 34 IF64A-Banco de Dados 1 pbugatti@utfpr.edu.br Prof. Pedro Henrique Bugatti
Compartilhar