SCC Bancos de Dados e Suas Aplicações

Slides:



Advertisements
Apresentações semelhantes
Um pouco mais de cardinalidade e Relacionamentos
Advertisements

Base de Dados para a Gestão de Informação de Natureza Pedagógica
Abordagem Entidade Relacionamento
Banco de Dados I Aula 24. Agenda Conceitos: Relacionamentos Trabalho: construção dos relacionamentos.
Modelo Relacional Renata Viegas.
Renata Viegas Extensões MER Renata Viegas
Apresentação da Disciplina
O Modelo E-R Definição: Características
Sistema Gerenciador de Banco de Dados SGBD
Introdução a Bancos de Dados
Banco de Dados – Modelo Relacional Universidade Federal de Santa Catarina Banco de Dados Mapeamento ER- Relacional (Material adaptado das profs. Daniela.
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
USP – ICMC - GBDI 1 Evolução dos Sistemas de Informação Sistemas de Informação baseados em gerenciamento de arquivos programas e arquivos orientados a.
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
(Dependência Funcional e Normalização)
ACESSO AO AMBIENTE VIRTUAL
Monitoria GDI Aula Prática
Ricardo de Oliveira Cavalcanti roc3[at]cin.ufpe.br
Prof. Alfredo Parteli Gomes
Colégio da Imaculada Curso Técnico em Informática Álgebra Relacional
SQL Server 2012 Introdução a Modelagem de Dados
Nome Integrantes do grupo e Professor Orientador
Diagrama de Classes e Colaboração
Mapeamento de Objetos para o Modelo Relacional - Introdução
Prof.: Bruno Rafael de Oliveira Rodrigues
Cardinalidade Expressa o numero de entidades as quais outra entidade pode estar associada via um conjunto de relacionamentos.
REGRAS DE PRODUÇÃO DO MODELO LÓGICO
Projetando uma base de dados
Análise de Sistemas de Informação
DIAGRAMA DE CLASSE Médio Integrado.
Banco de Dados Aplicado ao Desenvolvimento de Software
Universidade do Vale do Paraíba Disciplina: Banco de Dados II
BANCO DE DADOS Aula 3 Josino Rodrigues Neto© Fundamentos em Banco de Dados.
SCC Bancos de Dados e Suas Aplicações
Sistemas de Informação (SI)
DESENVOLVIMENTO DE SOFTWARE AULA 7 – Sistemas de Banco de Dados
Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características.
Projeto de BD Análise de Requisitos Projeto Conceitual Projeto Lógico
ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades.
Baixar plug-in Instalar plug-in antes de rodar Protégé.
Introdução a Banco de Dados e Access
Aula 3 – Conceitos de banco de dados relacionais
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Banco de dados e tipos de programação
Banco de Dados I Aula 3 - Projeto Conceitual de Banco de Dados
Implementação Orientada a Objetos – Aula 01 Introdução à Orientação a Objetos Prof. Danielle Martin Universidade de Mogi das Cruzes
4 Projeto de Banco de Dados Carlos Alberto Heuser.
Projeto de Banco de Dados Ceça Moraes Dezembro/09.
Bases de dados relacionais
@ Rafael Machado – ACCESS Base de Dados para a Gestão de Informação de Natureza Pedagógica.
Modelo Entidade-Relacionamento (ER)
Modelo de Entidade-relacionamento
 O Modelo E-R (Entidade-Relação)
Normalização Prof. Juliano. 2 Consistência de Dados Controlar a construção do sistema através da criação de tabelas segundo regras que garantam a manutenção.
Modelagem Entidade-Relacionamento (MER)
Modelagem de Dados Estudo de Caso 2. 2 A Faculdade A fim de melhorar o andamento de suas atividades, uma faculdade resolveu informatizar as suas atividades.
Tecnologias e Linguagens para Banco de Dados I - WEB Prof. João Ricardo Andrêo 29/5/ :40 1 Atividades: 1 - Criar uma base de dados para uma empresa.
Modelagem de Dados Aula 4. 2 Implementação de Entidades Não é aconselhável simplesmente transcrever os nomes dos atributos para nomes de colunas. Nomes.
Banco de dados – na prática Prof Jean Carlo Mendes Maio/2016 Unipac Lafaiete.
Implementação Orientada a Objetos – Aula 02 Introdução à Orientação a Objetos Prof. Danielle Martin Profa. Marcia A. S. Bissaco Universidade de Mogi das.
Transcrição da apresentação:

SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Material original: Elaine Parros Machado de Sousa Mapeamento entre Esquemas Parte 2

Abstrações Como mapear Conjuntos de Entidades? Aluno Disciplina Sigla Nome No. Créditos Sigla Aluno Nome NUSP CPF RG USP – ICMC – GBDI

Mapeamento de Abstrações de Dados O MER-X suporta duas abstrações de dados: Agregação Generalização Extensão do Mapeamento MER-MREL para suporte às abstrações

Mapeamento de Agregação Caso 1: CE Agregação é identificado por atributo próprio + chaves dos CEs que participam do CR gerador uma mesma instância do CR gerador resulta em mais de uma entidade agregada Sala Data Paciente Médico Atende N M Consulta Nome RG CRM CE ou CEs – conjunto de entidades CR – conjunto relacionamento Na ilustração: o CR Consulta possui CEs Paciente e Médico Um CR gerador, produz um CE agregação. No caso, Consulta. Atende definiria um conjunto e, portanto, um paciente seria atendido uma única vez por cada médico, sem possibilidade de inserir novas consultas para um mesmo médico no sistema.

Mapeamento de Agregação Caso 1: CE Agregação é identificado por atributo próprio + chaves dos CEs que participam do CR gerador uma mesma instância do CR gerador resulta em mais de uma entidade agregada No mapeamento tradicional, M-N, um mesmo paciente não poderá consultar o mesmo médico novamente – nem mesmo para o retorno. Sala Data Paciente Médico Atende N M Consulta Nome RG CRM CE ou CEs – conjunto de entidades CR – conjunto relacionamento Na ilustração: o CR Consulta possui CEs Paciente e Médico Um CR gerador, produz um CE agregação. No caso, Consulta. Atende definiria um conjunto e, portanto, um paciente seria atendido uma única vez por cada médico, sem possibilidade de inserir novas consultas para um mesmo médico no sistema.

Mapeamento de Agregação Consulta N M Paciente Atende Médico RG CRM Data Nome Nome Sala Médico = {CRM, Nome} Paciente = {RG, Nome} Neste exemplo, o atributo Data, e o fato de que não pode haver um mesmo atendimento paciente-médico na mesma data, faz com que uma modelagem em que o relacionamento Atende tenha os atributos Data e Sala não seja suficiente, pois a cardinalidade M-N não garante a semântica desejada. Obs.: Apesar do exemplo usar semântica temporal, este problema não é exclusivo de relacionamentos envolvendo tempo. Consulta = {Paciente, Medico, Data, Sala}

Mapeamento de Agregação Caso 2: CE Agregação é identificado por um de seus atributos as chaves dos CE que participam do CR gerador não são necessárias para identificar a agregação Projeto N M Um professor tem um aluno por projeto e um projeto tem um único professor. Cada professor pode ter vários projetos e cada aluno pode ser orientado em vários projetos. Aluno- Pós Professor Orienta NFunc NUSP Título Nome Nome

Mapeamento de Agregação Caso 2a: cada instância do CR gera apenas uma entidade agregada... Projeto N M Aluno- Pós Professor Orienta NFunc NUSP Título Nome Nome Aluno = {NUSP, Nome} Professor = {Nfunc, Nome} Neste exemplo Orientador + Aluno determinam uma chave candidata (isto é, juntos são atributos primos), de maneira que não é possível a repetição de uma orientação orientador-aluno. Projeto = {Título, Orientador, Aluno}

Mapeamento de Agregação Caso 2b: cada instância do CR gera mais de uma entidade agregada... Projeto N M Aluno- Pós Professor Orienta NFunc NUSP Título Nome Nome Aluno = {NUSP, Nome} Professor = {Nfunc, Nome} Neste caso, pode haver a repetição de uma orientação orientador-aluno, de maneira que vários projetos podem ser desenvolvidos pela mesma parceria. Projeto = {Título, Orientador, Aluno}

Mapeamento de Agregação Caso 2b: cada instância do CR gera mais de uma entidade agregada... Esse mapeamento apresenta um ganho semântico, com o título do projeto como chave. Projeto N M Aluno- Pós Professor Orienta NFunc NUSP Título Nome Nome Aluno = {NUSP, Nome} Professor = {Nfunc, Nome} Neste caso, pode haver a repetição de uma orientação orientador-aluno, de maneira que vários projetos podem ser desenvolvidos pela mesma parceria. Projeto = {Título, Orientador, Aluno}

Mapeamento de Agregação Caso 3: mistura dos casos 1 e 2b. Duas formas de identificar CE Agregação: 1. chaves dos CE que participam do CR gerador + atributo da agregação 2. atributo próprio da agregação Sala Data Paciente Médico Atende N M Consulta Nome RG CRM NroRegistroConsulta também identifica univocamente cada consulta

Consulta = {Paciente, Medico, Data, NroRegistroConsulta, Sala} Médico Atende N M Consulta Nome RG CRM NroRegistroConsulta Médico = {CRM, Nome} Paciente = {RG, Nome} Consulta = {Paciente, Medico, Data, NroRegistroConsulta, Sala} Qual é o problema sendo resolvido neste caso? Um único atributo como chave apresenta melhor desempenho e é mais fácil de ser usado.

Exemplo (caso 1): um relacionamento R1 entre o Professor P1 e a Disciplina D1 pode gerar várias entidades Aula, mas o Livro Texto não muda para cada uma destas aulas.... Data/Horário Professor Disciplina Ministra Livro Texto N Aula NFunc Sigla Nome Nome Professor = {Nfunc, Nome} Disciplina = {Sigla, Nome} Neste caso, o fato de que o relacionamento tem atributo leva à necessidade de se ter uma tabela a mais, além da tabela que representa a agregação. No exemplo, se livro for armazenado na tabela da agregação, esta informação será replicada. Um professor ministra várias aulas de uma disciplina. Como armazenar dados a respeito de cada aula sendo que só pode haver uma única aula em cada data/horário? Aula = {Nfunc, Sigla, Data/Horário, LivroTexto}

Exemplo: um relacionamento R1 entre o Professor P1 e a Disciplina D1 pode gerar várias entidades Aula, mas o Livro Texto não muda para cada uma destas aulas.... Data/Horário Professor Disciplina Ministra Livro Texto N Aula NFunc Sigla Nome Nome Professor = {Nfunc, Nome} Disciplina = {Sigla, Nome} Neste caso, o fato de que o relacionamento tem atributo leva à necessidade de se ter uma tabela a mais, além da tabela que representa a agregação. No exemplo, se livro for armazenado na tabela da agregação, esta informação será replicada. Um professor ministra várias aulas de uma disciplina. Como armazenar dados a respeito de cada aula sendo que só pode haver uma única aula em cada data/horário? Neste exemplo, tanto o relacionamento N:N quanto a agregação levaram à criação de relações. No entanto, na maioria dos casos, uma única relação irá comportar todos os dados. Ministra = {Nfunc, Sigla, LivroTexto} A semântica permite normalizar, gerando uma nova relação. Aula = {Nfunc, Sigla, Data/Horário}

Mapeamento da Generalização Três alternativas principais: Mapear o CEG e os CEE em relações diferentes Mapear o CEG e todos os CEE em uma única relação Mapear cada CEE (e apenas) em sua própria relação, junto com seus respectivos atributos genéricos CEG – conjunto de entidades generalizador CEE_k – k-ésimo conjunto de entidades específico

CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} AtC D Mapeamento da Generalização - Alternativa 1 (relações diferentes) Procedimento Padrão 1 Ch CEG disjunção AG AtC D CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} ... CEE1 CEEk AG – atributos gerais AtC – atributo que especifica a Classe da (instância) da entidade, vai indicar a qual CEE se refere a entidade A disjunção é conseguida aqui por meio do atributo classificador – no entanto, deve-se observar que o banco de dados – por meio de recursos não relacionais – é responsável por garantir a disjunção. O mesmo vale para variações desta solução considerando participação total. Disjunção: uma dada entidade só pode ser uma única subentidade Embora o atributo AtC peça que um tipo seja determinado, este recurso não é suficiente para garantir que haverá tuplas nas relações descendentes. Ae1 Aek Uma relação geral com um atributo de tipo (AtC)  disjunção.

CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} Mapeamento da Generalização - Alternativa 1 Procedimento Padrão 2 sobreposição Ch CEG AG AtC CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} O ... CEE1 CEEk Sobreposição: um dada entidade pode ser mais do que uma subentidade. A sobreposição ocorre, pois como uma entidade genérica não possui tipo específico, ela pode aparecer em mais do que uma tabela descendente ao mesmo tempo. Nesse caso, não se usa AtC, pois uma dada entidade pode ser de várias subentidades. Problema: caso eu não saiba o tipo de uma entidade que será usada como parâmetro para uma consulta, eu tenho que vasculhar todas as tabelas até encontrar o que estou procurando. Ae1 Aek A relação geral não possui atributo de tipo  sobreposição.

CEG = { Ch, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} Mapeamento da Generalização - Alternativa 1 Procedimento Padrão 3 sobreposição Ch CEG AG AtC CEG = { Ch, AG } CEE1 = { Ch, Ae1} ... CEEk = { Ch, Aek} CEC={ Ch, AtC} O ... CEE1 CEEk Nessa abordagem, usa-se uma terceira relação – CEC (Conjunto de Entidades de Classificação) – que indica a qual tipo de entidade uma dada entidade se refere. Ae1 Aek Uma terceira relação – CEC – que indica a qual tipo de entidade uma dada entidade se refere (neste caso, sobreposição).

CEG = { Ch, AtC, AG, Ae1, ... Aek } AtC D ... Mapeamento da Generalização - Alternativa 2 (única relação) Procedimento Padrão 4 CEG = { Ch, AtC, AG, Ae1, ... Aek } Ch CEG disjunção AG AtC D Uma única tabela com todos os possíveis atributos de todas as possíveis entidades. AtC como NOT NULL garante participação total. ... CEE1 CEEk Ae1 Aek Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, com atributo de tipo  disjunção.

Mapeamento da Generalização - Alternativa 2 Procedimento Padrão 5 CEG = { Ch, AtC, AG, Ae1, ... Aek } sobreposição Ch CEG AG AtC O A sobreposição ocorre pois torna-se aceitável o preenchimento de atributos pertencentes a mais do que uma entidade específica. Uma única tabela com todos os possíveis atributos de todas as possíveis entidades. Mas sem um atributo que especifica a subentidade da entidade  sobreposição. Não garante participação total, pois não há mecanismo que force a entidade a pertencer a uma subentidade. Mesmo problema que o padrão 2, agravado pelo fato de que os atributos nulos serão interpretação semântica confusa. ... CEE1 CEEk Ae1 Aek Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, sem atributo de tipo  sobreposição.

CEG = { Ch, AG, Ae1,... Aek, BCEE1, .... BCEEk} Mapeamento da Generalização - Alternativa 2 Procedimento Padrão 6 CEG = { Ch, AG, Ae1,... Aek, BCEE1, .... BCEEk} sobreposição Ch CEG AG AtC O ... CEE1 CEEk BCEEk: atributos boleanos que indicam quais atributos se aplicam para uma dada entidade. Um boleano para cada atributo específico. Solução ruim. Nesta abordagem, cada entidade pode ser mais do que uma subentidade ao mesmo tempo  sobreposição Ae1 Aek Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, sem atributo de tipo, e com atributos booleanos para determinar quais atributos correspondem a quais entidades.

CEE1 = { Ch, AG, AE1 } ... CEEk = { Ch, AG, AEk } AtC ... Mapeamento da Generalização - Alternativa 3 (não há relação genérica) Procedimento Padrão 7 CEE1 = { Ch, AG, AE1 } ... CEEk = { Ch, AG, AEk } participação total Ch CEG AG AtC Cada relação com seus atributos gerais e específicos. Sobreposição – uma dada entidade pode ser várias ao mesmo tempo. Na alternativa 3, não há tabela para a entidade genérica, apenas uma tabela para cada subentidade. Necessidade de participação total: todos os genéricos participam de alguma entidade específica. Problema semelhante ao padrão 2. ... CEE1 CEEk Ae1 Aek

CEEk = { Ch, AG, AEk } CEC={ Ch, AtC} Mapeamento da Generalização - Alternativa 3 Procedimento Padrão 8 CEEk = { Ch, AG, AEk } CEC={ Ch, AtC} participação total Ch CEG AG AtC D Cada relação com seus atributos gerais e específicos. E outra que indica de qual tipo é cada instância  disjunção. Aqui, uma tabela auxiliar – a CEC – indica de qual subentidade é cada entidade. A tabela auxiliar é interessante pois permite a consulta sobre quais entidades são o quê no banco. Como o atributo AtC entra na relação sem ser chave, este procedimento atende as situações em que a especialização é mutuamente exclusiva, isto é, uma dada entidade só pode ser de uma única subentidade. Mutualidade exclusiva aqui se refere a disjunção. AtC como NOT NULL. ... CEE1 CEEk Ae1 Aek

CEEk = { Ch, AG, AEk } CEC={ Ch, AtC} Mapeamento da Generalização - Alternativa 3 Procedimento Padrão 9 CEEk = { Ch, AG, AEk } CEC={ Ch, AtC} participação total Ch CEG AG AtC O Cada relação com seus atributos gerais e específicos. E outra que indica de qual tipo é cada instância  sobreposição. Semelhante ao slide anterior. No entanto, AtC como atributo que compõe a chave, faz com que exista a possibilidade de sobreposição. ... CEE1 CEEk Ae1 Aek

Os 9 Procedimentos Padrão 1 CEG = {Ch, AtC, AG} CEEi = {Ch, Aei} 2 CEG = {Ch, AG} CEEi = {Ch, Aei} 3 CEG = {Ch, AG} CEEi = {Ch, Aei} CEC = {Ch, AtC} 4 CEG = {Ch, AG, AtC, Ae1, Ae2, .... Aem} 5 CEG = {Ch, AG, Ae1, Ae2, .... Aem} 6 CEG = {Ch, AG, Ae1, Ae2, .... Aem, BCEE1, BCEE2, ...BCEEm}} 7 CEEi = {Ch, AG, Aei} 8 CEEi = {Ch, AG, Aei} CEC = {Ch, AtC} 9 CEEi = {Ch, AG, Aei} CEC = {Ch, AtC}