evolução dos sistemas de informação
DESCRIPTION
Evolução dos Sistemas de Informação. Sistemas de Informação baseados em gerenciamento de arquivos programas e arquivos orientados a cada unidade organizacional rotinas específicas para tarefas específicas dados armazenados em disco, usando uma determinada estrutura de dados. Dados. - PowerPoint PPT PresentationTRANSCRIPT
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 cada
unidade organizacional rotinas específicas para tarefas específicas dados armazenados em disco, usando uma
determinada estrutura de dados
AplicaçõesAplicações
Arquivo 1
Arquivo 2
Arquivo 3
DadosDados
PROBLEMA?????
Arquivos de Dados
de Produção
Arquivos de Dados de Vendas
Arquivos de Dados de Compras
Produtos Produtos Produtos
Aplicação de Produção
Aplicação de Vendas
Aplicação de Compras
REDUNDÂNCIA
Arquivos de Dados
de Produção
Arquivos de Dados de Vendas
Produtos Produtos
Aplicação de Produção
Aplicação de Vendas
REDUNDÂNCIA INCONSISTÊNCIA
Nome: Notebook NroSerie:1111111
Fabricante: Y
Insere:
Nome: NotebookNroSerie:1111111
Fabricante: X
Insere:
USP – ICMC - GBDI
5
Consistência de Dados Dados em estado inconsistente
informações incorretas ou
contraditórias são fornecidas aos usuários
USP – ICMC - GBDI
6
Consistência de Dados Consistência é “estado ou caráter do
que é coerente, do que tem solidez, veracidade, credibilidade, estabilidade, realidade”.
Consistência: se determinada informação é replicada (redundância), seu valor é sempre o mesmo
USP – ICMC - GBDI
7
SIs baseados em arquivos Problemas?
Redundância e inconsistência de dados Dificuldade de acesso aos dados Isolamento de dados Anomalias no acesso concorrente Segurança
USP – ICMC - GBDI
8
Além disso... SIs baseados em arquivos dados
gravados em disco usando ESTRUTURAS DE DADOS
Acesso requer conhecimento destas estruturas DEPENDÊNCIA DE DADOS.
15
46
63
81
97
15
99
16
USP – ICMC - GBDI
9
Vários programas compartilhando os mesmos dados todos devem conhecer e manipular as mesmas estruturas
E se houver uma alteração na estrutura de dados?
Dependência dos Dados
TODOS OS PROGRAMAS TERÃO QUE SER ALTERADOS
USP – ICMC - GBDI
10
Independência dos Dados
Como tornar os programas INDEPENDENTES da estrutura de dados?
CRIANDO UM SISTEMA QUE GERENCIE A ESTRUTURA
15
46
63
81
97
15
99
16
SistemaGerenciador de
DadosCompartilhados
Aplicação 1
Aplicação 2
USP – ICMC - GBDI
11
Independência dos Dados
Sistema de Gerenciamento de Bases (ou Banco) de DadosSGBD
15
46
63
81
97
15
99
16
SGBDAplicação 1
Aplicação 2
USP – ICMC - GBDI
12
SGBD
Sistema de Gerenciamento de Bases de Dados
conjunto de dados base (banco) de dados
conjunto de programas para acesso e manipulação dos dados
USP – ICMC - GBDI
13
SGBD
Sistema de propósito geral
armazenar grandes volumes de dados
permitir busca e atualização dos dados eficiência
Manutenção de um conjunto lógico e organizado de dados
completamente autônomo em relação às aplicações
Esquema - Definição da base de dados
Instância – Base de dados
SGBD
Aplicação Aplicação Aplicação
USP – ICMC - GBDI
15
SGBDs Requisitos Fundamentais:
Segurança Física (mais comum no passado) Lógica
Usernames e passwords Perfis de usuário
USP – ICMC - GBDI
16
SGBDs Requisitos Fundamentais (cont):
Integridade consistência validade
Restrições de Integridade!!!
Nome: Joaquim PereiraCargo: FaxineiroSalário:R$ 230.000,00
Arquivos de Dados
?????
USP – ICMC - GBDI
17
SGBDs Requisitos Fundamentais (cont):
Integridade - se contem apenas dados válidos, que não contradizem a realidade que estão a representar.
Restrições de integridade, que definem o que é válido e o que não é válido. Exemplos:
– um funcionário não pode pertencer a mais do que um departamento– o preço de venda de um produto deverá ser superior ao seu custo.– a referência de cada produto deve ser única
USP – ICMC - GBDI
18
SGBDs Requisitos Fundamentais (cont):
Recuperação / Tolerância a falhas Transações atômicas
unidades lógicas de trabalho, em geral envolvendo várias operações
Registros de Log Backup
Controle da concorrência gerenciamento de transações concorrentes
USP – ICMC - GBDI
19
Por que usar SGBDs?
Vantagens: armazenamento persistente de dados e
estruturas de dados; INDEPENDÊNCIA DE DADOS; CONSISTÊNCIA DE DADOS; ABSTRAÇÃO E INTERFACE; acesso compartilhado (multiusuário e
concorrente) à informação; distribuição de informações
USP – ICMC - GBDI
20
Por que usar SGBDs?
Vantagens: reduz complexidade das aplicações segurança controle de acesso aos dados backup utilização de padrões
USP – ICMC - GBDI
21
Por que usar SGBDs?
Desvantagens Custo financeiro Um sistema a mais a ser aprendido e
gerenciado
USP – ICMC - GBDI
22
Componentes de um SGBD
Os componentes funcionais do SGBD: componentes de processamento de
consultas componentes de gerenciamento de
armazenamento
Dados eMetadados
Processador de Consultas
Gerenciador de Armazenamento
SGBDSGBDBanco de DadosBanco de Dados
USP – ICMC - GBDI
23
Componentes de um SGBD
Conceitos importantes: Pragmatismo: primeiro modelagem
(documentada), seguida de definição e instanciação, e só depois o uso
1. Modelagem: modelo entidade/relacionamento
2. Definição: SQL, subconjunto DDL3. Instanciação: SQL, subconjuntos DDL/DML4. Uso: SQL, subconjunto DML
USP – ICMC - GBDI
24
Componentes de um SGBD
Conceitos importantes: SQL - Data Definition LanguageSQL - Data Definition Language (DDL)
conjunto de comandos para definição do esquema da base de dados
Exemplos em linguagem SQL create table alter table drop table
Compilador/Interpretador DDL
USP – ICMC - GBDI
25
Componentes de um SGBD
Conceitos importantes (cont.): MetadadosMetadados Dicionário de Dados:Dicionário de Dados:
banco de dados do sistema armazena descrição do esquema armazena metadados armazena restrições de segurança e
integridade outras denominações: catálogo de dados,
diretório de dados
USP – ICMC - GBDI
26
Componentes de um SGBD
Conceitos importantes (cont.): SQL - Data Manipulation LanguageSQL - Data Manipulation Language (DML)
recuperação (consulta) inserção remoção modificação DML viabiliza manipulação dos dados de maneira
compatível com o modelo de dados
USP – ICMC - GBDI
27
Componentes de um SGBD
Conceitos importantes (cont.): Data Manipulation LanguageData Manipulation Language (DML)
Exemplos em linguagem SQL insert select delete update ...
USP – ICMC - GBDI
28
Componentes de um SGBD
Conceitos importantes (cont.): Procedural vs Declarativo
Procedural: exige especificação de quais dados são necessários, e como obtê-los
requer uma sequência específica de operações a serem executadas
ex.: linguagens de programação como C e Pascal, e a linguagem de projeto de bancos de dados álgebra relacional
Não-Procedural (Declarativo): exige apenas especificação de quais dados são necessários, e não de como obtê-los
ex: SQL
A interface dos bancos de dados é definida pela linguagem declarativa SQL (DDL + DML)
Usuários FinaisProgramador
es de aplicações
Usuários Sofisticados
DBAs
Interfaces de aplicação
Aplicações Consulta (Query)
Esquema de BD
Pré-compilador de Comandos DML DML embutido no .exe
Programas de Aplicações
em Código Objeto
Compilador DML
Interpretador DDL
Componente de avaliação e execução
de consultas
Gerenciador de Buffer
Gerenciador de
Transações
Gerenciador de Arquivos Gerenciador de Armazenamento
Processador de Consultas
SGBD
Pré-compilador de
Comandos DML
Programas de Aplicações
em Código Objeto
Compilador DML
Interpretador DDL
Componente de execução de
consultas
Gerenciador de Buffer
Gerenciador de
Transações
Gerenciador de Arquivos
Gerenciador de Armazenamento
Processador de Consultas
SGBD
Índices
Dados Estatísticos
Dicionário de DadosArquivos de
Dados
[Silb
esr
chats
]
USP – ICMC - GBDI
31
Evolução dos Sistemas de Bases de Dados
USP – ICMC - GBDI
32
Evolução dos Sistemas de Bases de Dados
Os programas de aplicação são executados no servidor de dados – os terminais “burros” executam quase nenhum processamento.
USP – ICMC - GBDI
33
Evolução dos Sistemas de Bases de Dados
PC
USP – ICMC - GBDI
34
Evolução dos Sistemas de Bases de Dados
PCPCs mais potentes executam tanto o programa de aplicação quanto o SGBD. O servidor de arquivos provê espaço de armazenamento, escasso à época.
USP – ICMC - GBDI
35
Evolução dos Sistemas de Bases de Dados
USP – ICMC - GBDI
36
Arquitetura Cliente/Servidor
Dados eRegras
SGBD
ServidorServidor ClienteCliente
AplicaçõesAplicações
USP – ICMC - GBDI
37
Arquitetura Cliente/Servidor
Duas camadas
Dados eRegras SGBD
ServidorServidor ClienteCliente
AplicaçõesAplicações
BD + parte (pequena) da lógica
de negócio
Interface + maior parte da lógica de
negócio
USP – ICMC - GBDI
38
Arquitetura Cliente/Servidor
Três camadas
Dados e Regras
SGBD
ServidorServidor ClienteCliente
Aplicações-ClienteAplicações-Cliente
BD + parte comum da lógica de negócio
Interface + parte específica da
lógica de negócio
Servidor de AplicaçãoServidor de Aplicação
USP – ICMC - GBDI
39
Arquitetura Cliente/Servidor
Quatro camadas
Dados e Regras
SGBD
ServidorServidor ClienteCliente
Aplicações-ClienteAplicações-ClienteServidor de Servidor de AplicaçãoAplicação
Servidor de Servidor de InterfaceInterface
Definição da base de dados armazenada
Base de dados armazenada
SGBD
Aplicação Aplicação Aplicação
ESQUEMAESQUEMA INSTÂNCIAINSTÂNCIA
Esquema e Instância Banco de dados:
EsquemaEsquema Definição Estático (ou quase!)
InstânciaInstância Manipulação Dinâmica
Instância
Esquema
Esquema e Instância
Esquema pode ser definido em 3 níveis
Three-Schema Architecture
Arquitetura Esquema de Três
Three-Schema Architecture (ou arquitetura ANSI/SPARC)1. múltiplas visões para os usuários 2. armazenamento da descrição da base de dados
(esquemaesquema) em diferentes níveis de abstraçãoabstração
3.3. independência de dadosindependência de dados
Incorporação de características importantes da filosofia de bases de dados
Three-Schema Architecture
Nível Externo ou de Visão Visão 1 Visão 2 Visão N...
Nível Conceitual ou Lógico
Nível Interno ou Físico
Esquema Conceituale/ou Esquema Lógico
Esquema Físico
Sub-Esquemas (views)
Three-Schema Architecture
Nível Interno – esquema físicoesquema físico descreve estrutura física de
armazenamento da base de dados como os dados estão armazenados
Three-Schema Architecture
Nível Conceitual – esquema esquema conceitual e/ou lógicoconceitual e/ou lógico descreve a estrutura da base de dados sem
detalhes de estrutura de armazenamento físico
quais dados estão armazenados e como estão relacionados
descrição do esquema conceitual/lógico: modelo conceitual (ex: MER) modelo de implementação (ex: Modelo
Relacional)
Three-Schema Architecture
Nível Externo – sub-esquemassub-esquemas define as visões dos usuários
descreve a parte da base de dados em que cada grupo de usuários tem interesse
descrição de sub-esquemas: modelo conceitual (ex: MER) modelo de implementação (ex: Modelo Relacional)
Three-Schema Architecture
Nível Externo ou de Visão
Visão 1 Visão 2 Visão N...
Nível Conceitual ou Lógico
Nível Interno ou Físico
mapeamento externo/conceit
ual
mapeamento conceitual/inter
no
Three-Schema Architecture
Visualização de níveis de esquema em sistemas de banco de dados ABSTRAÇÃOABSTRAÇÃO escondendo detalhes e complexidade
nos diferentes níveis visão mais geral ou mais específica
Recordando.... Three-Schema Architecture (ou
arquitetura ANSI/SPARC) independência de dadosindependência de dados múltiplas visões para os usuários armazenamento da descrição da base de
dados (esquemaesquema) em diferentes níveis de abstraçãoabstração
OK!!!!
OK!!!!
Independência de Dados Independência de dados na
arquitetura de três esquemas capacidade de modificar o capacidade de modificar o esquema em determinado nível esquema em determinado nível sem afetar o esquema do nível sem afetar o esquema do nível superiorsuperior
SGBD pode suportar: independência física independência lógica
Independência de Dados
Nível Externo ou de Visão
Visão 1 Visão 2 Visão N...
Nível Conceitual ou Lógico
Nível Interno ou Físico
Independência Física???
Independência de Dados
Independência física de dados modificações no esquema interno não
provocam alterações nos esquemas lógico e externo
por que modificar esquema interno? quando os esquemas em níveis superiores
teriam que ser alterados?
Independência de Dados
Independência física de dados modificações no esquema interno não
provocam alterações nos esquemas lógico e externo
por que modificar esquema interno? quando os esquemas em níveis superiores
teriam que ser alterados?
Modificações no nível interno – reorganização dos dados – ex: inserção de novos mecanismos de acesso, novos índices, mais espaço de armazenamento.
Independência de Dados
Nível Externo ou de Visão
Visão 1 Visão 2 Visão N...
Nível Conceitual ou Lógico
Nível Interno ou Físico
Independência Lógica???
Independência de Dados
Independência lógica de dados modificações no esquema lógico não
provocam alterações nos esquemas externos aplicativos não precisam ser reescritos
por que modificar esquema lógico? quando os esquemas em níveis superiores
teriam que ser alterados?
Independência de Dados
Independência lógica de dados modificações no esquema lógico não
provocam alterações nos esquemas externos aplicativos não precisam ser reescritos
por que modificar esquema lógico? quando os esquemas em níveis superiores
teriam que ser alterados?
Modificações no nível conceitual – reestruturação lógica – ex.: novas tabelas, novos atributos, novas restrições de integridade expansão.
No cado de redução, níveis superiores talvez tenham que ser alterados. Ex.: exclusão de atributos, relacionamentos, ou restrições de integridade.
Ciclo de VidaCiclo de Vida
Projeto Conceitual
Projeto Lógico
Projeto Físico
Análise Funcional
Projeto
Implementação
Coleta/Especificaçãode Requisitos
Dados eMetadados
SGBDSGBD Aplicação
Mundo Real
Protótipo
RequisitosFuncionais
Requisitosde Dados
Sistemas de Banco de Dados
Sistemas de Banco de Dados
Dados eMetadados
SGBDSGBD Aplicação
Mundo Real
RequisitosFuncionais
Requisitosde Dados
• DBA• Pessoal de Suporte e Operação
• Analistas de Sistemas• Programadores
• Usuários • Operadores de Aplicação
• Projetistas de Interface
Desenvolvimento de Software
Projeto Conceitual
Projeto Lógico
Projeto Físico
Análise Funcional
Projeto
Implementação
Coleta/Especificaçãode Requisitos
Protótipo
Ciclo de VidaCiclo de Vida
Sistemas de Banco de Dados
Dados eMetadados
SGBDSGBD Aplicação
Mundo Real
RequisitosFuncionais
Requisitosde Dados
Desenvolvimento de Sistemas de Banco de Dados
• Projetistas de BD
• DBA• Pessoal de Suporte e Operação
• Usuários • Operadores de Aplicação
• Projetistas de Interface
Projeto Conceitual
Projeto Lógico
Projeto Físico
Análise Funcional
Projeto
Implementação
Coleta/Especificaçãode Requisitos
Protótipo
Projeto conceitual esquema conceitual para a base de
dados níveis conceitual/lógico e externo baseado nos requisitos de dados objetivos:
estrutura da base de dados semântica relacionamentos restrições
Desenvolvimento de Sistemas de Banco de Dados [Elmasri]
Desenvolvimento de Sistemas de Banco de Dados [Elmasri]
Projeto conceitual (cont.) independente do SGBD pode incluir especificação em alto nível
de: aplicações características funcionais das transações
modelo conceitual – ex: MER
Desenvolvimento de Sistemas de Banco de Dados [Elmasri]
Projeto lógico esquema lógico
níveis conceitual/lógico e externo mapeamento do modelo conceitual
para o modelo do SGBD ex: Modelo Relacional
Desenvolvimento de Sistemas de Banco de Dados [Elmasri]
Projeto lógico (cont.)
Passo1 – mapeamento independente de um SGBD específico
mas... dependente do “paradigma” (relacional, OO, relacional-objeto)
Passo 2 – ajustes de acordo com as características e restrições do modelo implementado por um SGBD específico
Desenvolvimento de Sistemas de Banco de Dados [Elmasri]
Projeto físico esquema físico
nível interno estruturas físicas de armazenamento
organização de registros físicos índices número de discos ….
critérios: tempo de resposta espaço utilizado número de transações
Modelagem de dadosOs Três Reinos - AbstraçãoAbstração
Produto
Sigla
Nome-P
Peso
Verifica
Padrão
Empregado
Código
Idade
Trabalha
PeçaMáquina Usina
Compostapor
Nome-E
Código
Material
Tempo
Total dehoras
1
1
N M
N
N1
N
M
PercepçãoPercepção
ModelagemModelagemImplementaçãoImplementação
RealReal ImaginárioImaginário
RepresentaçãoRepresentação
Idéias
Modelo E/R
Modelo Relacional
SGBDRelacional
MER
SQL - DDL
DADOS
Modelagem de Dados - Motivação
Por que modelar?? se
projetistas se apóiam pouco em metodologias sistemáticas para conduzir o projeto da base de dados...
então tempo e recursos são subestimados resultado não atende às necessidades das
aplicações documentação é limitada manutenção custosa
Modelos de Dados
Modelo de dadosModelo de dados – “definição abstrata, autônoma e lógica dos objetos, operadores e outros elementos que, juntos, constituem a máquina abstrata com a qual os usuários interagem”. (Date)
objetos estrutura dos dados
operadores comportamento dos dados
Modelos conceitual e de implementação (ou lógico)
Modelos de Dados
Modelos de dados (Elmasri) Conceituais
Modelo Entidade Relacionamento (MER) Modelo de Objetos da ODMG (Object Database
and Open Source Vendors) ….
de Implementação : Ex: Rede, Hierárquico, NO-SQL, Relacional
Modelos Conceituais
Objetivo: descrição do conteúdo da base de dados
NÃO considera estruturas de armazenamento
Enfoque: compreensão e descrição da realidade
(informação) compreensão e seleção das propriedades
relevantes da informação compreensão e descrição das restrições sobre os
dados diálogo com o usuário
Projeto Conceitual
Ciclo de VidaCiclo de Vida
Sistemas de Banco de Dados
Dados eMetadados
SGBDSGBD Aplicação
Mundo Real
RequisitosFuncionais
Requisitosde Dados
Desenvolvimento de Sistemas de Banco de Dados
• Projetistas de BD
• DBA• Pessoal de Suporte e Operação
• Usuários • Operadores de Aplicação
• Projetistas de Interface
Projeto Conceitual
Projeto Lógico
Projeto Físico
Análise Funcional
Projeto
Implementação
Coleta/Especificaçãode Requisitos
Protótipo
Modelagem Conceitual
Entrada: Requisitos de DadosRequisitos de Dados Processo:
modelagem – representação conceitual modelo conceitual (Ex: MER)
Resultado: Esquema ConceitualEsquema Conceitual descrição sucinta (diagramas e texto) clara, concisa, sem ambigüidades, sem
contradições padronizada
Modelagem Conceitual Ex:
SDM (Semantic Data Model) [McLeod-81] SAM (Semantic Association Model) [Su-86] IFO [Abiteboul-87] ME-R (Modelo Entidade-Relacionamento) [Chen-
76] Modelos Orientados a Objetos
Object Model (ODMG), UML, OMT, OOAD, BOOCH
…..
Modelos de Implementação
Modelo em Rede: dados representados por um conjunto de
registros relações entre registros representadas por
links registros organizados no BD por um
conjunto de grafos
Modelos de Implementação
Modelo Hierárquico similar ao Modelo em Rede
dados e relações representados por registros e links
diferença: no Modelo Hierárquico os registros estão organizados em árvores
Sistema IMS (Information Management System - IBM)
Modelos de Implementação
Modelo Relacional difere por não usar links relaciona os registros por meio de
valores possibilidade do desenvolvimento de
fundamentos matemáticos para sua definição
Cálculo Relacional e Álgebra Relacional
Precursor, Sistema R (IBM)
Ciclo de VidaCiclo de Vida
Sistemas de Banco de Dados
Dados eMetadados
SGBDSGBD Aplicação
Mundo Real
RequisitosFuncionais
Requisitosde Dados
Desenvolvimento de Sistemas de Banco de Dados
• Projetistas de BD
• DBA• Pessoal de Suporte e Operação
• Usuários • Operadores de Aplicação
• Projetistas de Interface
Projeto Conceitual
Projeto Lógico
Projeto Físico
Análise Funcional
Projeto
Implementação
Coleta/Especificaçãode Requisitos
Protótipo
USP – ICMC – GBDI
MER - Modelo Entidade Relacionamento
MER – Criado por Peter Chen “The entity-relationship model: towards
a unified view of data”, ACM TODS, 1976.
Voltado para a representação dos aspectos estáticos (informação) do Domínio da Aplicação Modelagem semântica dos dados
USP – ICMC – GBDI
MER - Modelo Entidade Relacionamento
Popular Simplicidade Expressividade Intuitivo representação gráfica da
informação Diagrama Entidade-RelacionamentoDiagrama Entidade-Relacionamento (DE-R)
USP – ICMC – GBDI
▪ Modelos de Dados definem um conjunto (limitado) de Construtores Sintáticos
▪ um mesmo Construtor Sintático pode ser usado para representar diversas situações do mundo real
MER – Construtores Sintáticos
Sobrecarga SemânticaSobrecarga Semântica
USP – ICMC – GBDI
▪Conjunto de Entidades (CE)
▪Conjunto de Relacionamentos (CR)
▪Atributos de Entidades
▪Atributos de Relacionamentos
MER – Construtores Sintáticos
USP – ICMC – GBDI
▪ Entidades “coisas”, objetos, pessoas, entes, etc. do mundo real
▪ Conjuntos de Entidades coleções de entidades que têm a mesma “estrutura” e o mesmo “significado” na modelagem ▪ estrutural e semanticamente iguais
MER
USP – ICMC – GBDI
▪ MER não trata Entidades individuais, apenas Conjuntos de Entidades
▪ Notação DER: retângulo
Pessoa Disciplina
Conjunto de Entidades
USP – ICMC – GBDI
▪ Relacionamentos associações entre entidades do mundo real
▪ Conjuntos de Relacionamentos relacionamentos entre entidades dos mesmos CEs
Pessoa Disciplina
Conjunto de Relacionamentos
USP – ICMC – GBDI
▪ Notação DER: losango
PessoaDisciplina
Escola
Matricula
Trabalha
Conjunto de Relacionamentos
USP – ICMC – GBDI
▪ Ex: vários Conjuntos de Relacionamentos envolvendo os mesmos Conjuntos de Entidades
PessoaDisciplina
Matricula
Faz Prova
Conjunto de Relacionamentos
USP – ICMC – GBDI
▪Atributos valores que representam propriedadespropriedades das entidades e relacionamentos no mundo real
▪ atributos de entidades▪ atributos de relacionamentos
Atributos
USP – ICMC – GBDI
▪ Notação DER: elipses ligadas aos Conjuntos de Entidades
Pessoa
Matricula
Disciplina
Nome
No. USPNome
Sigla
Número Créditos
Atributos de Entidades
USP – ICMC – GBDI
▪ Idéia: os atributos de um Conjunto de Entidades descreve todas as entidades do conjunto
▪Pergunta: um Conjunto de Entidades sem atributos tem significado para a modelagem???
Atributos de Entidades
USP – ICMC – GBDI
▪ ConjuntosConjuntos: conceito que fundamenta quase : conceito que fundamenta quase toda a matemática;toda a matemática;
▪ Definição: coleção de elementos distintos Definição: coleção de elementos distintos ((sem repetiçãosem repetição) e sem ordem definida ) e sem ordem definida (apenas eventual);(apenas eventual);
▪ Conjuntos são a base dos SBGDs;Conjuntos são a base dos SBGDs;
▪ Como definir conjuntos em SGBDs?Como definir conjuntos em SGBDs?
Conjunto
USP – ICMC – GBDI
▪ Restrição de UnicidadeRestrição de Unicidade:▪Todo conjunto de entidades
deve ter um atributo, ou um conjunto de atributos, cujo valor identifique univocamente cada entidade no conjunto
Restrição de Unicidade - Chave
CHAVECHAVE
USP – ICMC – GBDI
▪ Chave SimplesChave Simples:▪Notação DER: grifar atributo chave
Restrição de Unicidade - Chave
Pessoa
Nome
NUSP
CPF
Anotação: CPF é
identificador
USP – ICMC – GBDI
▪ ChaveChave:
▪principal meio de acesso a uma entidade
▪outros possíveis atributos identificadores (outras chaves) podem ser anotados separadamente, para efeito de documentação e para o projeto lógico
Restrição de Unicidade - Chave
USP – ICMC – GBDI
▪ Chave SimplesChave Simples:▪Notação DER: grifar atributo chave
Restrição de Unicidade - Chave
Pessoa
Nome
NUSP
CPF
Anotação: CPF é
identificador
USP – ICMC – GBDI
Número
▪ Chave CompostaChave Composta:▪ entidade precisa de mais de um
atributo para identificação▪ a concatenação de todos estes
atributos indica a chave única
Restrição de Unicidade - Chave
Sala Aula
Bloco
Campus
▪ Notação DER: todos os atributos da chave grifados Capacidad
e
USP – ICMC – GBDI
Número Créditos
▪ Ex: onde colocar um atributo NOTA???
Pessoa
Matricula
Disciplina
Nome
No. USP
Nome
Atributos
Sigla
USP – ICMC – GBDI
Se fosse um atributo de Pessoa, cada pessoa teria uma nota única para
qualquer disciplina
Atributos
Pessoa
Matricula
Disciplina
NomeNo. USP Nota
▪ Ex: onde colocar um atributo NOTA???
Número Créditos
NomeSigla
USP – ICMC – GBDI
Se fosse um atributo de Disciplina, todas as pessoas matriculadas numa disciplina teriam
a mesma nota
Pessoa
Matricula
Disciplina
NomeNo. USP
▪ Ex: onde colocar um atributo NOTA???
Número Créditos
NomeSigla
Nota
Atributos
USP – ICMC – GBDI Número Créditos
▪ Ex: onde colocar um atributo NOTA???
Pessoa
Matricula
Disciplina
NomeNo. USP Nome
Atributos de Relacionamentos
SiglaNota
em MATRICULA!!!
USP – ICMC – GBDI
▪ Observação: os CEs sempre possuem atributos, mas os CRs podem existir mesmo que não tenham atributos próprios
Atributos de Relacionamentos
▪ existência de CR é justificada pela associação entre os CEs
▪ ex: queremos representar que pessoas matriculam-se em disciplinas, mas pode ser que não estejamos interessados em indicar as notas obtidas em cada matrícula
USP – ICMC – GBDI
Atributos
Tipos de atributos Simples vs. Composto
simples (atômico): não dividido; uma única parte
composto: dividido em partes; possui sub-atributos
USP – ICMC – GBDI
Atributo Composto
Pessoa
NomeNUSP
Endereço
Composto
RuaNúmeroCEPCidade
Pessoa
NomeNUSP
RuaNúmeroCEPCidade
Endereço
Notação
USP – ICMC – GBDI
Atributo Composto
Pessoa
NomeNUSP
Endereço
EndRuaCEPCidade
NomeNumeroApart
Nome
Pessoa
NomeNUSP EndRua Númer
oCEPCidade
Endereço
Apart
Notação
USP – ICMC – GBDI
Atributos Tipos de atributos
Monovalorado vs. Multivalorado monovalorado: pode assumir um
único valor para uma/um entidade/relacionamento em particular
multivalorado: pode assumir mais de um valor para uma/um entidade/relacionamento em particular
USP – ICMC – GBDI
N.Ser.Med.
Atributo Multivalorado
Alergias
Aluno
Nome
Multivalorado
N.Ser.Med.
Alergias
Aluno
Nome
Notação
USP – ICMC – GBDI
Atributos Tipos de atributos
Armazenado vs. Derivado armazenado: atributo da entidade derivado: valor pode ser obtido a
partir dos valores de outros atributos da entidade ou de informação armazenada em seus relacionamentos
USP – ICMC – GBDI
Data Nascimento
Atributo Derivado
Idade
Aluno
Nome
Derivado
Notação
Aluno
Nome
Data NascimentoIdade
USP – ICMC – GBDI
Atributo Derivado
Número Créditos
Pessoa
Matricula
Disciplina
Nome
No. USPNome
Sigla
Nro Disciplinas
USP – ICMC – GBDI
▪ Cada CE que participa de um CR tem um PAPELPAPEL no CR
▪ Indicação opcional▪ pode facilitar entendimento da modelagem
Conjunto de Relacionamentos - Papéis
Pessoa
Matricula
DisciplinaMatriculada
em
Matricula
USP – ICMC – GBDI
▪ Indicação de papéis deve ser feita sempre que houver ambigüidade na interpretação do CR
Empresa
Contrata CursoContratContrat
aa
ContrataContratadodoporporContrataContrata
dadaporpor
ContratContrataa
? ?
Conjunto de Relacionamentos - Papéis
USP – ICMC – GBDI
▪ em geral CEs assumem papéis distintos em CRs distintos
Nota
Pessoa
Matricula
Disciplina
Concluir
matriculada em matricula
conclui é concluída
Conjunto de Relacionamentos - Papéis
USP – ICMC – GBDI
▪ Auto-Relacionamento:▪um mesmo CE desempenha mais de
um papel num mesmo CR
Disciplina
Pré - Requisito
tem pré-requisito
é pré-requisito
Conjunto de Relacionamentos - Papéis
USP – ICMC – GBDI
▪ Cardinalidade Restrição Restrição estrutural estrutural
▪todo CR associa uma ou mais entidades de um CE1 a uma ou mais entidades de um CE2
▪Cardinalidade determina o número de relacionamentos dos quais cada entidade pode participar
Conjunto de Relacionamentos - Cardinalidade
USP – ICMC – GBDI
Conjunto de Relacionamentos - Cardinalidade
1
Um para Um
1Ementa Descreve Disciplina
N
Um para Muitos
1TurmaTutora Professor
Pessoa Matricula
DisciplinaMN
Muitos para Muitos
USP – ICMC – GBDI
117
▪Restrição de Participação Restrição EstruturalRestrição Estrutural
▪Participação Total
▪Participação Parcial
Conjunto de Relacionamentos – Restrição de Participação
USP – ICMC – GBDI
118
▪ Considere o exemplo:
Se um curso deixar de existir, o que acontece com suas disciplinas? Faz sentido guardar as disciplinas de um curso que não existe mais? Uma disciplina pode existir sem estar associada a um Curso?
CursoDisciplina
Possui
Conjunto de Relacionamentos
N1
USP – ICMC – GBDI
119
▪ ex: toda entidade Disciplina deve (obrigatoriamente!) participar de um relacionamento Possui deve estar associada a uma entidade Curso
▪ Notação DER: linha dupla conectando o CE ao CR
Conjunto de Relacionamentos – Participação Total
CursoDisciplina
Possui N1
Participação Total de Disciplina em Possui
USP – ICMC – GBDI
120
▪Participação Total ou Dependência Dependência ExistencialExistencial ▪ toda entidade de um CE deve participar, obrigatoriamente, de ao menos um relacionamento do CR
▪ uma entidade só existe se estiver associada a outra entidade por meio de um relacionamento
Conjunto de Relacionamentos – Participação Total
USP – ICMC – GBDI
121
▪ Participação Parcial Participação Parcial nem todas as entidades de um CE participam de um CR▪ uma entidade pode existir sem estar associada a outra▪ Notação DER: linha simples conectando o CE ao CR
Conjunto de Relacionamentos – Participação Parcial
AlunoDisciplina
Monitora
NN
Participação Parcial de Aluno em Monitora
USP – ICMC – GBDI
122
Conjunto de Relacionamentos Considere o exemplo, para a base de
dados de uma empresa:
Dependente Funcionário
Possui 1N
CPF
NomeNomeParentesco
Como identificar um dependente na SEMÂNTICA do domínio de aplicação?
USP – ICMC – GBDI
123
Conjunto de Relacionamentos – Entidade Fraca
Dependente Funcionário
Possui1N
CPFNome
NomeParentesco
um Dependente é identificado por meio do Funcionário ao qual está associado
ENTIDADE FRACA!
USP – ICMC – GBDI
124
▪ Entidade FracaEntidade Fraca
▪não tem atributos que possam identificá-la univocamente na SEMÂNTICA do domínio de aplicação▪ não tem chave (semântica) própria
▪sua identificação depende de um relacionamento com uma entidade de outro conjunto (chamada de owner)
Conjunto de Relacionamentos – Entidade Fraca
USP – ICMC – GBDI
125
Conjunto de Relacionamentos– Entidade Fraca
Notação DER: Entidade Fraca: traço duplo no retângulo CR Identificador: traço duplo no losango
Dependente Funcionário
Possui 1N
CPFNome
Entidade Fraca
Relacionamento Identificador
Nome
Parentesco
USP – ICMC – GBDI
126
Conjunto de Relacionamentos– Entidade Fraca
Chave ParcialChave Parcial: um ou mais atributos de CEs Fracas que podem identificar univocamente as entidades fracas relacionadas a um mesmo owner
Dependente Funcionário
Possui 1N
Nome
Notação DER: traço pontilhadoChave Parcial
Nome
ParentescoCPF
USP – ICMC – GBDI
127
▪ Conjunto de Entidades Fracas: ▪ possui participação total no CR (chamado de
CR identificador)▪ a cardinalidade do CR é sempre 1:N ou 1:1,
mas nunca N:M
Conjunto de Relacionamentos – Entidade Fraca
Por que?
USP – ICMC – GBDI
129
Conjunto de Relacionamentos– Entidade Fraca
Qual seria uma outra maneira de modelar a informação contida em um Conjunto de Entidades Fracas? um atributo multivalorado composto não é um
bom projeto
Quando modelar como Entidade Fraca? quando tiver muitos atributos quando a entidade fraca participar de outros
relacionamentos além daquele que a identifica
USP – ICMC – GBDI
130
Conjunto de Relacionamentos– Entidade Fraca
Ex:
Turma DisciplinaPossui 1N
SiglaNome
Turma
Nro Alunos
AlunoN
NUSPNome
Matricula
N
USP – ICMC – GBDI
131
▪ Um Conjunto de Relacionamentos (CR) pode envolver dois ou mais Conjuntos de Entidades (CE)
▪ GRAU do CR é o número de CEs envolvidos
▪Dois CEs CR Binário▪Três CEs CR Ternário▪ ....
Conjuntos de Relacionamentos - Grau
USP – ICMC – GBDI
132
Pessoa
Matricula
Disciplina
N M
Binário
Aluno Monitora Disciplina
Monitora
Professor
Auxiliado por
Ternário
Monitorada por
Conjuntos de Relacionamentos - Grau
USP – ICMC – GBDI
133
Disciplina
▪ Dado um Professor e uma Disciplina, pode existir mais de um aluno monitor que a monitora
?
Relacionamento Ternário – Determinando Determinando Cardinalidade...Cardinalidade...
Aluno MonitoraN
Professor
USP – ICMC – GBDI
134
Disciplina
▪ Dado um Professor e um Aluno monitor, existe no máximo uma disciplina que esse aluno monitora
?
Aluno MonitoraN
Professor
1
Relacionamento Ternário – Determinando Determinando Cardinalidade...Cardinalidade...
USP – ICMC – GBDI
135
Disciplina
▪ Dado uma Disciplina e um Aluno monitor, mais de um professor pode ser responsável
?
Aluno MonitoraN
Professor
N
1
Relacionamento Ternário – Determinando Determinando Cardinalidade...Cardinalidade...
USP – ICMC – GBDI
136
▪ Cardinalidades possíveis para Ternários:▪ 1:1:1▪ 1:1:N▪ 1:N:P▪ N:M:P
Aluno Monitora Disciplina
N
Professor
N
1
Relacionamento Ternário – Cardinalidade
USP – ICMC – GBDI
137
▪ Podemos tentar “quebrar” o relacionamento ternário em vários binários?
Relacionamento Ternário
problema???
Ministra
Aluno Disciplina
Auxiliar
Professor
Monitora
Auxilia
Auxiliada por
Ministra
Ministrada por
Monitora Monitorada por
N N
N
N
N
N
USP – ICMC – GBDI
138
Problema perda de informação perda de informação semânticasemântica
a informação representada por um conjunto de relacionamentos ternário nem sempre pode ser obtida apenas com CRs Binários ex: como responder: Aluno A auxilia Professor P em qual Disciplina?
Relacionamento Ternário
Ministra
Aluno Disciplina
Auxiliar
Professor
Monitora
Auxilia
Auxiliada por
Ministra
Ministrada por
Monitora Monitorada por
N N
N
NN
N
USP – ICMC – GBDI
139
▪ Mesmo Conjunto de Entidades com vários papéis
Produto
Uma Empresa (vendedora) negocia Produtos com outra Empresa (compradora)
VendidoP
EmpresaNegociar
M
NCompra
Vende
Relacionamento Ternário
USP – ICMC – GBDI
140
Uma Empresa (Assessora) Promove a Venda de uma outra Empresa (Vendida) para uma terceira Empresa (Compradora)
EmpresaPromove
rVendas
M
N
Compra
Vende
AssessoraP
Relacionamento Ternário
USP – ICMC - GBDI
145
Abstrações no MER-X
MER-X (MER Estendido) suporte a Abstrações de Dados
Abstração de Agregação Abstração de
Generalização/Especialização
USP – ICMC - GBDI
146
Conceito geral: construção de objetos compostos a partir de objetos componentes Idéia: elementos de modelagem
podem associar-se criando outros elementos que representam essa associação
Abstração de Agregação
USP – ICMC - GBDI
147
Agregação no MER-X: agregando Atributos a CE
os valores dos atributos compõem a
entidade
agregando CE e CR combinar entidades relacionadas por
meio de um relacionamento e compor entidades agregadas (de nível abstrato mais alto)
Abstração de Agregação
USP – ICMC - GBDI
148
Nome
Nome
Abstração de Agregação Ex: parte do DER para uma aplicação
Consultório Médico
RG Data
Paciente MédicoAtende
N M
CRM
Como identificar cada atendimento (consulta)?
USP – ICMC - GBDI
149
Nome
Nome
Abstração de Agregação Ex: parte do DER para uma aplicação
Consultório Médico
RG Data
Paciente MédicoAtende
N M
CRM
Como identificar cada atendimento (consulta)?
Problema: cada médico só pode atender um dado paciente uma única vez.
USP – ICMC - GBDI
150
Abstração de Agregação Exemplo (cont...):
com RG, CRM e Data é possível identificar cada consulta univocamente
Paciente MédicoAtende
N M
Nome
NomeRG CRMData
USP – ICMC - GBDI
151
Abstração de Agregação
Exemplo (cont...): Na semântica da aplicação, a
idéia de Consulta é relevante compor uma entidade Consulta a
partir de um relacionamento entre uma entidade Paciente e uma entidade Médico, com uma Data específica
USP – ICMC - GBDI
152
Abstração de Agregação
Data
Paciente MédicoAtende
N M
Consulta
Nome
NomeRG CRM
Onde colocar Data ?
USP – ICMC - GBDI
153
Abstração de Agregação
Data
Paciente MédicoAtende
N M
Entidade Agregada (elemento composto)
Atributo da Entidade Agregada
Consulta
Nome
NomeRG CRM
Relacionamento Gerador da Agregação
Elementos Componentes
USP – ICMC - GBDI
154
Abstração de Agregação Chave de Consulta composta por
RG, CRM e Data
Data
Paciente MédicoAtende
N M
Consulta
Nome
NomeRG CRM
USP – ICMC - GBDI
155
PreçoNome Nom
e
Abstração de Agregação Exemplo (cont...):
RGData
Paciente MédicoAtende
N M
CRM
Consulta
Recibo
Tem
1
N
Nro
USP – ICMC - GBDI
156
Abstração de Agregação Ex: parte do DER para uma aplicação
Pós-Graduação o Título sob o qual é realizada uma
orientação é único para todo o sistema um atributo do relacionamento poderia
identificá-lo univocamente
Título
Professor Aluno- Pós
Orienta NM
NUSPNome
USP – ICMC - GBDI
157
NUSPNome
Abstração de Agregação Abstrair a informação representada no
relacionamento Orienta e criar uma agregação Projeto
a chave de Projeto é o atributo Título
Título
Professor Aluno- Pós
Orienta NM
Projeto
USP – ICMC - GBDI
158
NUSPNome
Início
Abstração de Agregação Exemplo (cont...):
Título
Professor Aluno- Pós
Orienta NM
Projeto
Financia
Agência de
Fomento
1
N
USP – ICMC - GBDI
159
CódigoNome
Abstração de Agregação Ex: DER para um sistema de
universidade qual é a chave de Aula? onde colocar a informação do livro texto
adotado pelo professor para a disciplina?
Data/Horário
Professor Disciplina
Ministra
Livro Texto
NN
Aula
USP – ICMC - GBDI
160
Nome
Nome
Abstração de Agregação Ex: parte do DER para uma aplicação Agência
de Empregos
RG
Candidato
Empresa
Entrevista
N M
CNPJ
Como modelar: algumas entrevistas resultam numa oferta de emprego (com cargo e salário inicial) e outras não....
USP – ICMC - GBDI
161
Abstração de Agregação
Candidato
Empresa
Entrevista
N M
Entrevista
SalarioResulta Empreg
o
Cargo
1
N
Nome
NomeRG CNPJ
Data
N_vagas
USP – ICMC - GBDI
163
Nome Nome
Exemplo: A Consulta também poderia ser identificada por um
Número de Registro, além de RG, CRM e Data neste caso, um deles deve ser escolhido como chave
principal
RG NroRegistro
Paciente MédicoAtende
Consulta
N M
CRM
Abstração de Agregação
Data
Anotação complementar:RG, CRM e Data são identificadores
USP – ICMC - GBDI
164
Abstração de Agregação Indícios de uso da Agregação
semanticamente, as mesmas instâncias de um CE participam de mais de um relacionamento (instância) do mesmo CR
ex: CEs paciente e médico, CR atende o CR possui um identificador próprio
ex: título, no CR orienta entre os CEs professor e aluno_pós
necessidade de associar dois relacionamentos
ex: CRs entrevista e resulta
USP – ICMC - GBDI
165
Abstração de Generalização – Introdução
Genérico
Específico
Generaliza(abstrai)
Especializa(detalha)
Is-a
Herança
USP – ICMC - GBDI
166
MER CE agrupa entidades de um mesmo tipo CE expressa o tipo das entidades
MER-X tipos podem ser especializados em subtipos
entidades podem ser especializadas em subtipos de entidades relevantes no domínio do problema
Abstração de Generalização – Introdução
Abstração de Generalização/EspecializaçãoAbstração de Generalização/Especialização
USP – ICMC - GBDI
167
Abstração de Generalização – Notação DER-X
Entidade Abstrata(Entidade Genérica ou Supertipo)
Direção do Relacionamento: Especialização
Entidade Detalhe (Entidade Específica
ou Subtipo)
Pessoa
Aluno Professor Funcionário
USP – ICMC - GBDI
168
Generalização - elementos de um conjunto são distribuídos em diversos subconjuntos (subtipos)
relacionamento Is-a
Abstração de Generalização
Pessoa={p1, p2, p3, p4, ...}
Aluno= {p1, p3, ...}
Aluno Pessoa
Pessoa
Aluno Professor Funcionário
USP – ICMC - GBDI
169
Critério de Especialização – determina como os elementos são distribuídos em subconjuntos (subtipos) específicos Definido pelo Usuário Definido por Valor de Atributo (ou Definido por Predicado)
Abstração de Generalização
Pessoa
Aluno Professor Funcionário
USP – ICMC - GBDI
170
Critério Definido pelo Usuário CE(s) Específico(s) indicado(s) explicitamente na inserção da entidade
Critério de Especialização
Pessoa
Aluno Professor Funcionário
USP – ICMC - GBDI
171
Critério Definido por Predicado valores do(s) atributo(s) de critério definem o(s) CE(s) Específico(s) automaticamente na inserção da entidade
Critério de Especialização
Critério de Especialização
Pessoa
Aluno Professor Funcionário
Nome
Vínculo
Vínculo
‘docente’
‘funcionário’‘aluno’
USP – ICMC - GBDI
172
Conceito fundamental: HERANÇAHERANÇA CEs específicos herdam todos os atributos do CE genérico
OBS: em geral, atributos usados como critério não são herdados pelos CEs específicos
Herança
USP – ICMC - GBDI
173
Herança a chave do CE específicos é herdada do CE genérico chave definida implicitamente
Nome
Idade
Altura
Vínculo
N#Func
Função
N#USP
Curso
Pessoa
Aluno Professor Funcionário
Vínculo
‘docente’‘funcionário’
‘aluno’
USP – ICMC - GBDI
174
CEs específicos herdam todos os CRs definidos para o CE genérico
Herança
Plano SaúdepossuiNome
Idade
Altura
Vínculo
N#Func
Função
N#USP
Curso
Pessoa
Aluno Professor Funcionário
Vínculo
‘docente’‘funcionário’
‘aluno’
N1
175
Herança em Múltiplos Níveis
Graduação Pós-Grad. Técnico Secretária
Semestre Formação Especialidade
Nome
Idade
Altura
Vínculo
N#Func
Função
N#USP
Curso
Pessoa
Aluno Professor Funcionário
Exemplo: Exemplo:
Graduação Pós-Grad. Assistente Doutor
Nome
Idade
Altura
Vínculo
Titulação
N#USP
Curso
Pessoa
Aluno Funcionário Professor
Herança Herança MúltiplaMúltipla
Prof/Aluno
USP – ICMC - GBDI
177
Um mesmo CE participa como CE Específico em mais de uma ocorrência da Abstração de Generalização
Um mesmo CE possui mais de um supertipo “direto” CE específico "herda" todos os atributos e
relacionamentos dos seus supertipos atributos e relacionamentos herdados de um mesmo
CE genérico por caminhos diferentes na hierarquia são associados (implicitamente) apenas uma vez ao CE específico
Herança Múltipla
Veículo
Terrestre Aquático
Automóvel Anfíbio Barco
Exemplo: Exemplo: Herança Múltipla Herança Múltipla
USP – ICMC - GBDI
179
Podemos criar uma hierarquia de especialização com mais de um CE genérico?
Herança Múltipla
NÃO!!!NÃO!!!Por que? Por que?
Quando Especializar? CASO 1:
determinados atributos aplicam-se somente a alguns CEs específicos
AtributosGenéricos
AtributosEspecíficos
AtributosEspecíficos
Nome
Idade
Altura
Vínculo
N#Func
Função
N#USP
Curso
Pessoa
Aluno Professor Funcionário
Vínculo
‘docente’‘funcionário’
‘aluno’
USP – ICMC - GBDI
181
CASO 2: existem
relacionamentos dos quais participam apenas entidades de alguns CEs específicos
Quando Especializar?
Disciplina ministracursa
Pessoa
Aluno Professor Funcionário
USP – ICMC - GBDI
184
Restrição de Disjunção
Exclusão Mútua
Sobreposição
Restrição de Totalidade
Especialização Total
Especialização Parcial
Restrições da Abstração de Generalização
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
USP – ICMC - GBDI
185
Restrição de Disjunção
Exclusão MútuaExclusão Mútua - uma disciplina deve ser somente de um tipoTipo
Disciplina
Grad. Pós-Gr.
Nome
Sigla
Semestre Nível
DD
Tipo
‘pós’‘grad’
USP – ICMC - GBDI
186
Abstração de Generalização é mutuamente mutuamente exclusivaexclusiva se, para qualquer par de CEEs j e k distintos, vale:
CEEj CEEk =
Restrição de Disjunção
Exclusão Mútua
NotaçãoCEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
DD
DD
USP – ICMC - GBDI
187
Restrição de Disjunção
Sobreposição - um funcionário pode acumular mais de uma função ao mesmo tempo
Pessoa
Vigia Secretário
Turno Nível
Bibliotecário
Seção
Função
Nome
OO
Função
‘bibliotecário’‘vigia’ ‘secretário’
USP – ICMC - GBDI
188
Abstração de Generalização é definida com sobreposiçãosobreposição se para algum par de CEEs j e k distintos:
CEEj CEEk
Sobreposição
Notação
Restrição de Disjunção
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
OO
OO
USP – ICMC - GBDI
189
Restrição de Totalidade
Especialização TotalEspecialização Total - qualquer disciplina é de pelo menos um tipo:graduação, pós-graduação, e/ou especialização
Disciplina
Grad. Pós-Gr.
Semestre Nível
Especializ.
N#Horas
Tipo
Nome
Sigla
tipo
‘espec.’‘grad’ ‘pós’
USP – ICMC - GBDI
190
Abstração de Generalização é TotalTotal quando todas as entidades genéricas estão em pelo menos um dos CEEs:
U CEEk = CEG
Total
Notação
K
Restrição de Totalidade
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
USP – ICMC - GBDI
191
Restrição de TotalidadeEspecialização Parcial – uma pessoa pode, por exemplo, ter a função de Gerente de Recursos Humanos (que não está definida como subtipo)
Pessoa
Vigia Secretário
Turno Nível
Bibliotecário
Seção
Função
Nome
função
‘bibliotecário’‘vigia’‘secretário’
USP – ICMC - GBDI
192
Abstração de Generalização é ParcialParcial quando existem entidades genéricas que não estão em nenhum CEE:
U CEEk CEG
Parcial
Notação
k
Restrição de Totalidade
CEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
USP – ICMC - GBDI
193
Restrições de cada ocorrência da abstração dependem da semântica do mundo real
As Restrições da Abstração de Generalização
Parcial ExclusivaParcial Sobreposta
Total ExclusivaTotal Sobreposta
PossibilidadesCEG
CEE1 CEE2 CEEi
Ch
AG
AE1 AE2 AEi
...
USP – ICMC - GBDI
194
Parcial Exclusiva
Uma disciplina só pode ser de um tipo
Há disciplinas que não são nem de graduação nem de pós-graduação. Ex: disciplinas para cursos de treinamento em empresas
Tipo
Disciplina
Grad. Pós-Gr.
Nome
Sigla
Semestre Nível
D
tipo
‘pós’‘grad’
USP – ICMC - GBDI
195
Total Exclusiva
Uma disciplina ou é de graduação ou de pós, ou de especialização
Só há disciplinas de graduação, de pós-graduação, e de especialização
Disciplina
Grad. Pós-Gr.
Semestre Nível
Especializ.
N#Horas
Tipo
Nome
Sigla
DD
tipo
‘espec.’‘grad’ ‘pós’
USP – ICMC - GBDI
196
Parcial Sobreposta
Um funcionário pode acumular mais de uma função, por exemplo Secretário e Bibliotecário, ao mesmo tempo
Além de Vigia, Secretário e Bibliotecário, há outras funções
Pessoa
Vigia Secretário
Turno Nível
Bibliotecário
Seção
Função
Nome
OO
função
‘bibliotecário’‘vigia’ ‘secretário’
USP – ICMC - GBDI
197
Total Sobreposta
Um aluno pode ao mesmo tempo estar matriculado em um curso de graduação e em um curso de especialização, por exemplo
Há somente alunos de graduação, de pós-graduação, e de especialização
Aluno
Grad. Pós-Gr.
Ano Ingresso M/D
Especializ.
Tipo
Nome
NUSP
OO
tipo
‘espec.’‘grad’ ‘pós’
Modelo Relacional Criado por E. F. Codd (IBM)
“A relational model of data for large shared data banks“. Communications of the ACM, Volume 13 , Issue 6, June 1970.
Modelo de Implementação projeto lógico
USP – ICMC – GBDI
198
Ciclo de VidaCiclo de Vida
Sistemas de Banco de Dados
Dados eMetadados
SGBDSGBD Aplicação
Mundo Real
RequisitosFuncionais
Requisitosde Dados
Desenvolvimento de Sistemas de Banco de Dados
• Projetistas de BD
• DBA• Pessoal de Suporte e Operação
• Usuários • Operadores de Aplicação
• Projetistas de Interface
Projeto Conceitual
Projeto Lógico
Projeto Físico
Análise Funcional
Projeto
Implementação
Coleta/Especificaçãode Requisitos
Protótipo
USP – ICMC – GBDI
200
Definição do Modelo
▪“O modelo relacional representa uma base de dados como uma coleção de relações ” [Elmasri&Navathe]
▪Modelo Relacional – base teórica em Teoria de Conjuntos
USP – ICMC – GBDI
201
Definição do Modelo
▪Valores▪ dados do mundo real
▪Tabelas▪ dados mantidos em tabelas representam coleções de objetos, entidades, associações, etc, do mundo real▪ tabelas são uma noção intuitiva para as RELAÇÕESRELAÇÕES
USP – ICMC – GBDI
202
▪ Relação▪ Tabela
▪ Tupla▪ Registro, linha
▪ Atributo▪ Campo
▪ Valor▪ Relation Intension
▪ Esquema▪ Relation Extension
▪ Instância
Terminologia
USP – ICMC – GBDI
203
Modelo Intuitivo
Esquema
Instância
Nome NUSP Curso
Paulo
Izabella
João
9999
8888
1111
Info
Info
Comp
….
USP – ICMC – GBDI
204
Modelo Intuitivo
Nome NUSP Curso
Paulo
Izabella
João
9999
8888
1111
Info
Info
Comp Relaçã
o
AtributoTupla
Valor
Esquem
a
de Rel
ação
Valores
Modelo relacional valores são atômicos Valor AtômicoValor Atômico
indivisível não pode ser recuperado em partes ex: endereço definido como um único atributo
monovalorado pode ter apenas um valor ex:
Idade de aluno é monovalorado Irmãos de aluno é multivalorado
USP – ICMC – GBDI
205
USP – ICMC – GBDI
206
▪ Domínio de aplicaçãoDomínio de aplicação
▪ Exemplos:Exemplos:
▪ EscolaEscola
▪ UniversidadeUniversidade
▪ CidadeCidade
▪ DomínioDomínio de atributo
▪ Exemplos:
▪ Nomes de Alunos
▪ Códigos de Disciplinas
▪ Idade
Domínios
USP – ICMC – GBDI
207
▪Especificação do Domínio de Domínio de atributoatributo: ▪Nome ▪Definição lógica▪Tipo de dado e formato de dado
Domínios
USP – ICMC – GBDI
208
▪ NomeNome e Definição lógicaDefinição lógica. Ex:▪Nomes de Alunos: conjunto de todos
os nomes possíveis para pessoas▪Códigos de Disciplinas: conjunto
dos códigos das disciplinas oferecidas no ICMC
▪ Idade: conjunto de idades possíveis para alunos
Especificação do Domínio
USP – ICMC – GBDI
209
▪ Tipo de dado e/ou formatoTipo de dado e/ou formato. Ex:
▪Nomes de Alunos – string de 60 caracteres
▪Códigos de Disciplinas – string com três letras seguidas de um traço e de quatro dígitos: SCC-0240
▪ Idade – inteiro entre 15 e 100
Especificação do Domínio
USP – ICMC – GBDI
210
▪ Esquema de relaçãoEsquema de relação: descreve a relação▪R R (A1, A2, ..., An)
▪ou R = R = {A1, A2, ..., An}
▪RR - nome da relação
▪(A1, A2, ..., An) - conjunto de atributos que formam a relação
Esquema de Relações
USP – ICMC – GBDI
211
▪ N - graugrau da relação descrita por RR▪número de atributos em RR
▪ Dom(ADom(Aii)) - Domínio do Atributo Ai
▪ Ex:▪uma relação de Alunos que tenha os
atributos Nome, RG e Idade, tem o seguinte esquema:
Esquema de Relações
Aluno(Nome, RG, Idade)
USP – ICMC – GBDI
212
Exemplo Especificação dos domínios: Especificação dos domínios:
▪ Nomes de Alunos: conjunto de todos os nomes possíveis para pessoas – strings de 60 caracteres
▪ RG: conjunto dos RGs válidos no Brasil – números de 9 dígitos
▪ Idade: conjunto de idades possíveis para alunos – inteiro entre 0 e 100
USP – ICMC – GBDI
213
Exemplo (cont.)
Esquema da relação Aluno: Aluno={Nome, RG, Idade}
Domínios dos atributos de Aluno: Dom(Nome) = Nomes de Alunos Dom(RG) = RG Dom(Idade) = Idade
USP – ICMC – GBDI
214
Relações Relação RRelação R – instância do Esquema de
Relação R R (A1, A2, ..., An)
R(RR) R Dom(A1) X Dom(A2) X ... Dom(An) R é um conjunto de tuplas R={t1, t2, ... tk}
t = {v1, v2, ... vn}, vi Dom(Ai)
USP – ICMC – GBDI
215
▪ Número total de tuplas possíveis:
▪ |Dom(A1)| X |Dom(A2)| X ... X|Dom(An)|
▪ R(RR) contém apenas as tuplas válidas que representam a situação de um determinado instante do mundo real
▪ Esquema de Relação RR (relation intension) mudanças pouco freqüentes
▪ Relação R (relation extension) dinâmica
Relações
USP – ICMC – GBDI
216
▪ Exemplo:
▪Esquema de Relação Aluno:
▪Aluno = {Nome, RG, Idade}
▪Possível relação:
▪R(Aluno) = {<José, 12345, 21>,
<Pedro, 54321, 18>,
<Paulo, 321321, 22>}
Relações
USP – ICMC – GBDI
217
▪ Ordem das tuplas de uma relação ▪ relação conjunto de tuplas
▪ matematicamente não existe a idéia de ordem em conjuntos não existe uma ordem em particular para as tuplas de uma relação
OBS: na implementação de um SGBDR existe uma ordem física de armazenamento das tuplas, determinando uma ordem na recuperação das informações
Relações
USP – ICMC – GBDI
218
▪ Ordem dos valores de uma tupla▪ tupla lista de n valores dispostos em uma ordem determinada de acordo com a disposição dos atributos no esquema da relação
▪ Valores nas tuplas▪ os valores de uma tupla são atômicos▪ valor nulo (null )
▪ valor desconhecido▪ valor não se aplica ▪ valor conhecido mas não disponível
Relações
USP – ICMC – GBDI
219
Restrições das Relações Restrição de domínio
o valor de cada atributo A deve ser um valor atômico pertencente a Dom(A)
Restrição de null para atributo determina quando o valor especial null é ou
não permitido para um atributo Restrição de unicidade (CHAVE)
deve ser possível identificar univocamente cada tupla da relação
USP – ICMC – GBDI
220
▪ Relação é um conjunto de tuplas▪ pela teoria de conjuntos todas as tuplas
devem ser distintas▪ para garantir esta propriedade de maneira
eficiente▪ especifica-se uma Restrição de
Unicidade definição de chave
Restrição de Unicidade
USP – ICMC – GBDI
221
▪ SuperchaveSuperchave▪conjunto de atributos de uma relação
R que identifique univocamente cada tupla
▪SCHk(RR) = {Aj, ..., Ai}|{Aj, ..., Ai}
RR▪Combinação de valores não se repete▪Exemplo:
▪ Aluno = {Nome, Idade, Curso, NUSP}
▪ SCH1(Aluno) = {Nome, Curso, Idade}
▪ SCH2(Aluno) = {NUSP, Nome}
Restrição de Unicidade
USP – ICMC – GBDI
222
▪ ChaveChave▪é uma superchave da qual não se
pode retirar nenhum atributo e ainda preservar a propriedade de identificação unívoca superchave mínima
Restrição de Unicidade
USP – ICMC – GBDI
223
▪CHk(RR) = {Ai, ..., Aj}|{Ai, ..., Aj} RR
tg[CHk]≠ th[CHk] g, h R, g ≠ h
▪Exemplo:▪Aluno = {Nome, Idade, Curso,
NUSP}▪ SCH1(Aluno) = {Nome, NUSP}▪ CH1(Aluno) = {Nome}▪ CH2(Aluno) = {NUSP}
CHAVE
USP – ICMC – GBDI
224
▪ Chave Candidata:Chave Candidata:▪pode existir mais de uma chave
para uma mesma relação▪cada uma das chaves é chamada
de Chave Candidata▪ CH1(Aluno) = {Nome}▪ CH2(Aluno) = {NUSP}
Chave
USP – ICMC – GBDI
225
▪ Chave PrimáriaChave Primária▪escolhida entre as chaves
candidatas ▪a chave primária é
freqüentemente a mais utilizada para acessos à relação
▪Exemplo:▪CH0(Aluno) = {NUSP}
Chave
USP – ICMC – GBDI
226
▪Notação no Esquema da Relação
▪CH0(Aluno) = {NUSP}▪CH1(Aluno) = {Nome}
Aluno = {Nome, Idade, Curso, NUSP}
Chave
Chave primária
Chave secundária
USP – ICMC – GBDI
227
▪ O esquema SS de uma base de dados relacional é composto por: 1) um conjunto de esquemas de
relações SS = {R R 1, RR 2, ..., RR n}
2) um conjunto de Restrições de Integridade
Base de Dados Relacional
USP – ICMC – GBDI
228
▪ Uma base de dados relacional (uma instância) é composta por:
▪ um conjunto de relações
BD = {R1, R2, ..., Rn}
tal que cada Ri é uma instância de R R ii e cada Ri satisfaz todas as restrições indicadas em
Base de Dados Relacional
USP – ICMC – GBDI
229
R1 R2
BASE DE DADOS
R3 R4
Base de Dados Relacional
USP – ICMC – GBDI
230
▪ Base de Dados para armazenar informações sobre as diversas turmas de disciplinas oferecidas num semestre
▪ Esquemas de Relações:▪ Aluno = {Nome, NUSP, Idade, Curso}▪ Disciplina = {Sigla, Nome, NCreditos}▪ Matricula = {Aluno, Disciplina, Semestre, Ano,
Nota}
Exemplo
USP – ICMC – GBDI
231
▪Restrições de integridade▪regras a respeito dos valores
que podem ser armazenados nas relações▪ objetivo: garantir consistência
▪quando definidas no domínio do problema, devem ser sempre satisfeitas na base de dados
Restrições de Integridade
USP – ICMC – GBDI
232
▪ Principais restrições de integridade para um BD relacional:
▪Restrições de Integridade da Entidade
▪Restrições de Integridade Referencial
Restrições de Integridade
USP – ICMC – GBDI
233
▪Restrição de Integridade da Entidade▪a chave primária não pode ser
nula em nenhuma tupla de qualquer relação
▪se a chave primária for composta por mais de um atributo, nenhum deles pode ser nulo
Restrições de Integridade
USP – ICMC – GBDI
234
▪ Restrição de Integridade Referencial▪ definida entre duas relações▪ usada para manter consistência entre
tuplas de duas relações▪ define que: se uma tupla t1 em uma
relação R1 faz referência a uma relação R2, então t1 deve fazer referência a uma tupla existente em R2
Restrições de Integridade
USP – ICMC – GBDI
235
Restrição de Integridade Referencial está vinculada ao conceito de chave estrangeira conceito fundamental:
compatibilidade de domínio
Restrições de Integridade Referencial
USP – ICMC – GBDI
236
▪ Compatibilidade de DomínioCompatibilidade de Domínio:▪dados dois conjuntos de atributos
quaisquer C e D, ambos são compatíveis quando o primeiro atributo de C tem o mesmo domínio do primeiro atributo de D, o segundo atributo de C tem o mesmo domínio do segundo atributo de D, e assim por diante
▪ex:???
Restrições de Integridade Referencial
USP – ICMC – GBDI
237
▪ FK é uma Chave estrangeiraChave estrangeira em R1 que referencia R2 se:
1) FK é compatível em domínio com toda a chave primária PK de R2
2) o valor dos atributos FK numa tupla ti qualquer
da relação R1:
ou é igual ao valor dos atributos PK de alguma tupla tk da relação R2 ti[FK] = tk[PK], ti R1,
tkR2
ou é nulo ti[FK] = null
Restrições de Integridade Referencial
USP – ICMC – GBDI
238
▪ As duas condições para a ocorrência da chave estrangeira determinam a Restrição de Integridade Referencial entre duas relações R1 e R2
RR 1[FK] CE RR 2[PK]
Restrições de Integridade Referencial
USP – ICMC – GBDI
239
▪Chave Estrangeira:
X = {A, B, C} Y = {F, G, H}
Dom(F, G) = Dom(A, B) {A, B} é chave primária em X{F, G} é chave estrangeira em Y
Restrições de Integridade Referencial
Pergunta: a chave estrangeira {F,G} pode ser nula? Por que?
USP – ICMC – GBDI
240
▪ Exemplo:
Restrições de Integridade Referencial
Departamento = {Cod, NomeD}
Empregado = {NomeE, Departamento}
Pergunta: a chave estrangeira {Departamento} pode ser nula? Por que?
Alunos = {Nome, No.USP, Idade}
R1(Alunos) = {<Mario, 1234, 20>, <Paulo, 4321, null >, <null , 1234, 22>, <Thais, null, 24>, <Mario, 1235, 22>}
Disciplina = {Sigla, Monitor}
R2(Disciplina) = {<SCE_104, 1234>, <SCE_123, 2222>, <SCE_149, 1234>, <SCE_532, null >}
ExemploQuais restrições de relação e de integridade não são satisfeitas nas tuplas do exemplo? Por quê?
Mapeamento entre Esquemas –Mapeamento MER MRel
▪ MER - modelo conceitual▪ usado para especificar conceitualmente a
estrutura dos dados de uma aplicação▪ Projeto Conceitual – descrição carregada de semântica
▪ Modelo Relacional - modelo de implementação▪ usado para suportar a implementação de
aplicações▪ Projeto Lógico
▪ SGBDR SGBD que se apóia no modelo relacional
Passo 1 Como mapear Conjuntos de Entidades?
USP – ICMC – GBDI243
Disciplina
NomeNo. Créditos
Sigla
Aluno
Nome
NUSP
CPFRG
Atributo Composto
Pessoa = {Nome, NUSP, Rua, Número, CEP, Cidade}
RuaNúmeroCEP
Cidade
Pessoa
Nome
NUSP
Endereço
Passo 2 Como mapear Conjuntos de
Entidades Fracas?
USP – ICMC – GBDI245
HorárioSala
1Turma
N Corresponde
Tem
Corresponde
HorárioSala
Disciplina
NomeNo. Créditos
1Turma
Número
N
Sigla
Horário
Aula Prática
Laboratório
Código
Disciplina = {Sigla, Nome, NroCreditos}N
1
Turma = {Número, Sigla, Horário, Sala}
Aula_Prática = {Código, Horário, Laboratório, Número, Sigla}
Entidades fracas
USP – ICMC – GBDI247
Nome
ComissãoorganizaConferência
Data Instalaçã
o
1 1
NroMembros
Cod
Passo 3
▪ Como mapear Conjuntos de Relacionamentos Binários com Cardinalidade 1:1?
Nome
ComissãoorganizaConferência
Data Instalaçã
o
1 1
Conferência = {Nome}
Comissão = {Cod, NroMembros, Conferência, DtaInst}
NroMembros
Cod
Relacionamentos Binários
▪ Cardinalidade 1:1
Nome
ComissãoorganizaConferência
Data Instalaçã
o
1 1
Conferência = {Nome, CodComissão, DtaInst}
Comissão = {Cod, NroMembros}
NroMembros
Cod
Relacionamentos Binários
▪ Cardinalidade 1:1
Nome
ProjetoparticipaGerente1 1
Cod
Relacionamentos Binários
▪ Cardinalidade 1:1
Gerente = {Nome, Projeto}
Projeto = {Cod}
Restrição de null: na relação Gerente o atributo Projeto deve ser definido como não nulo.
(obrigatoriamente!)
Alternativas para o Mapeamento Relacionamentos Binários 1:1
Nome
ComissãoorganizaConferência
Data Instalaçã
o
1
NroMembros
Cod
1
ConfCom = {Nome, CodComissão, NroMembros, DataInstalação}
Alternativa - uma só relação:
Mapeamento usual: Conferência = {Nome, CodComissão, DataInstalação}
Comissão = {Cod, NroMembros}
Idade
Homem MulherNamora1
1
Nome
Pouca Participação
Alternativas para o Mapeamento Relacionamentos Binários 1:1
Idade
Nometempo
Considerações: o CR Namora representa relacionamentos de namoro na USP São Carlos!
Mapeamento usual
Mulher = {Nome, Idade}Homem = {Nome, Idade, NomeM,
tempo}
Muitos valores nulos!!
Mapeamento alternativo
Mulher = {Nome, Idade}
Homem = {Nome, Idade}
Namoro = {NomeH, NomeM, tempo}
Alternativas para o Mapeamento Relacionamentos Binários 1:1
Desvantagem????
Mapeamento alternativo
Mulher = {Nome, Idade}
Homem = {Nome, Idade}
Namoro = {NomeH, NomeM, tempo}
Alternativas para o Mapeamento Relacionamentos Binários 1:1
Desvantagem????Mais relações e mais junções
Diretor = {Nome, NomeAntecessor}
SucedeDiretor
1
1
Anterior
Sucessor
Papéis dos Relacionamentos
Nome
USP – ICMC – GBDI256
Nome
Disciplina
NomeNo. Créditos
MinistraProfessor
Horário
1 N
Passo 4
Sigla
▪ Como mapear Conjuntos de Relacionamentos Binários com Cardinalidade 1:N?
Nome
Disciplina
NomeNo. Créditos
MinistraProfessor
Horário
1 N
Professor = {Nome}
Disciplina = {Sigla, Nome, Créditos, Professor, Horário}
Relacionamentos Binários
Sigla
▪ Cardinalidade 1:N
NCreditos
Nome
Disciplina
AlunoMonitora1 N
Sigla NUSPHorário
Alternativas para o Mapeamento Relacionamentos Binários 1:N
Considerações: poucos alunos monitoram alguma disciplina
Pouca Participação
Mapeamento usual:
Disciplina = {Sigla, NCréditos}
Aluno = {NUSP, Nome, Sigla, Horário}
Muitos valores nulos!!
Mapeamento alternativo:
Disciplina = {Sigla, NCréditos}
Aluno = {NUSP, Nome}
Monitora = {NUSP, Sigla, Horário}
Alternativas para o Mapeamento Relacionamentos Binários 1:N
Obs: definir restrição de null para o atributo Sigla (em Monitora), para que ele não possa ter valor nulo
USP – ICMC – GBDI260
Passo 5▪ Como mapear Conjuntos de Relacionamentos Binários com Cardinalidade M:N?
Nome
NUSP
Disciplina
NomeNo. Créditos
Matriculado Aluno
Nota
M NSigla
Nome
NUSP
Disciplina
NomeNo. Créditos
Matriculado Aluno
Nota
M N
Disciplina = {Sigla, Nome, Créditos}
Aluno = {NUSP, Nome}
Relacionamentos Binários –
Sigla
▪ Cardinalidade M:N
Matriculado = {NUSP, Sigla, Nota}
USP – ICMC – GBDI262
Passo 6▪ Como mapear Conjuntos de Relacionamentos com grau > 2?
NomeInício
CodP
Fornecedor
CodF
ForneceProjeto
Qtde
P N
Nome
Peça
M
NomeInício
CodP
Fornecedor
CodF
ForneceProjeto
Qtde
P N
Nome
Peça
M
Relacionamentos Ternários
Projeto = {CodP, Início}
Fornecedor = {CodF, Nome}
Peça = {Nome}
Fornece= {CodP, Nome, CodF, Qtde}
No. Créditos
NomeNome
NUSP
Disciplina
Sigla
MonitoraAluno
Horário
1 N
Nome
Professor
M
Relacionamentos Ternários
Aluno = {NUSP, Nome}
Disciplina = {Sigla, Nome, No.Créditos}
Professor = {Nome}
Monitora= {NUSP, NomeProf, Sigla, Horário}
USP – ICMC – GBDI265
Passo 7▪ Como mapear atributos multivalorados?
Nro.Ser.Med.
Alergias
Aluno
NUSP
Nomes dos Pais
Atributos Multivalorados
Aluno = {Nome, NSerMed}
N.Ser.Med.
Alergias
AlunoNome
Alergias = {Nome, Alergia}
1a Opção de Mapeamento
Aluno = {NUSP, Nome, Pai, Mae}
Atributos Multivalorados
2a Opção de Mapeamento
Nome
Nomes Pais
Aluno
NUSP
valores possíveis: nome do pai nome da mãe
USP – ICMC – GBDI268
1.Mapear todos os CE2.Mapear todos os CE Fracas3.Mapear todos os CR de cardinalidade 1:14.Mapear todos os CR de cardinalidade 1:N5.Mapear todos os CR de cardinalidade N:N6.Mapear todos os CR de grau maior ou igual a 37.Mapear todos os atributos multivalorados
Mapeamento entre Esquemas –Os 7 Passos do Procedimento
Exercício – mapear para o Modelo Relacional
endereço
valordata
Representante RegiãoAtua1 1
Cliente
Pertence
1
N
Venda
Contato
Produto
É Feito
É Feita
Pertence
1N
NN N
1
qtde
data
nome
nota
preçocod
nomeCPF
RG
nomeCNPJ
telefones
estado
Abstrações Como mapear Conjuntos de Entidades?
USP – ICMC – GBDI270
Disciplina
NomeNo. Créditos
Sigla
Aluno
Nome
NUSP
CPFRG
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 Abstrações de Dados
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édicoAtendeN M
Consulta
NomeNomeRG CRM
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édicoAtendeN M
Consulta
NomeNomeRG CRM
Mapeamento de Agregação
No mapeamento tradicional, M-N, um mesmo paciente não poderá consultar o mesmo médico novamente – nem mesmo para o retorno.
Médico = {CRM, Nome}
Paciente = {RG, Nome}
Mapeamento de Agregação
Sala
Data
Paciente MédicoAtendeN M
Consulta
NomeNomeRG CRM
Consulta = {Paciente, Medico, Data, Sala}
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
Mapeamento de Agregação
Título
Professor Aluno- Pós
Orienta
Projeto
NomeNFunc
NomeNUSP
MN
Caso 2a: cada instância do CR gera apenas uma entidade agregada...
Mapeamento de Agregação
Título
Professor Aluno- Pós
OrientaMN
Projeto
NomeNFunc
NomeNUSP
Aluno = {NUSP, Nome}
Professor = {Nfunc, Nome}
Projeto = {Título, Orientador, Aluno}
Caso 2b: cada instância do CR gera mais de uma entidade agregada...
Mapeamento de Agregação
Título
Professor Aluno- Pós
OrientaMN
Projeto
NomeNFunc
NomeNUSP
Aluno = {NUSP, Nome}
Professor = {Nfunc, Nome}
Projeto = {Título, Orientador, Aluno}
Caso 2b: cada instância do CR gera mais de uma entidade agregada...
Mapeamento de Agregação
Título
Professor Aluno- Pós
OrientaMN
Projeto
NomeNFunc
NomeNUSP
Aluno = {NUSP, Nome}
Professor = {Nfunc, Nome}
Projeto = {Título, Orientador, Aluno}
Esse mapeamento apresenta um ganho semântico, com o título do projeto como chave.
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édicoAtendeN M
Consulta
NomeNomeRG CRM
Mapeamento de Agregação
NroRegistroConsulta
também identifica univocamente cada consulta
Sala
Data
Paciente MédicoAtendeN M
Consulta
NomeNomeRG CRM
NroRegistroConsulta
Médico = {CRM, Nome}
Paciente = {RG, Nome}
Consulta = {Paciente, Medico, Data,
NroRegistroConsulta, Sala}
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
NN
Aula
NomeNFunc
NomeSigla
Professor = {Nfunc, Nome} Disciplina = {Sigla,
Nome} 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
NN
Aula
NomeNFunc
NomeSigla
Professor = {Nfunc, Nome} Disciplina = {Sigla,
Nome} Ministra = {Nfunc, Sigla, LivroTexto}
Aula = {Nfunc, Sigla,
Data/Horário}
A semântica permite normalizar, gerando uma nova relação.
Três alternativas principais:1. Mapear o CEG e os CEE em relações
diferentes
2. Mapear o CEG e todos os CEE 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
CEG
CEE1 CEEk
Ch
AG
Ae1 Aek
...
CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1}... CEEk = { Ch, Aek}
Mapeamento da Generalização - Alternativa 1 (relações diferentes)Procedimento Padrão 1
disjunção
DAtC
Uma relação geral com um atributo de tipo (AtC) disjunção.
CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1}... CEEk = { Ch, Aek}
CEG
CEE1 CEEk
Ch
AG
Ae1 Aek
...
Mapeamento da Generalização - Alternativa 1Procedimento Padrão 2
sobreposição
OAtC
A relação geral não possui atributo de tipo sobreposição.
CEG
CEE1 CEEk
Ch
AG
Ae1 Aek
...
CEG = { Ch, AG } CEE1 = { Ch, Ae1}... CEEk = { Ch, Aek}
CEC={ Ch, AtC}
Mapeamento da Generalização - Alternativa 1Procedimento Padrão 3
OAtC
sobreposição
Uma terceira relação – CEC – que indica a qual tipo de entidade uma dada entidade se refere (neste caso, sobreposição).
CEG
CEE1 CEEk
Ch
AG
Ae1 Aek
...
CEG = { Ch, AtC, AG, Ae1, ... Aek }
Mapeamento da Generalização - Alternativa 2 (única relação)Procedimento Padrão 4
DAtC
disjunção
Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, com atributo de tipo disjunção.
CEG
CEE1 CEEk
Ch
AG
Ae1 Aek
...
Mapeamento da Generalização - Alternativa 2Procedimento Padrão 5
CEG = { Ch, AtC, AG, Ae1, ... Aek }
O
AtC
sobreposição
Uma única tabela com todos os possíveis atributos de todas as possíveis entidades, sem atributo de tipo sobreposição.
CEG
CEE1 CEEk
Ch
AG
Ae1 Aek
...
CEG = { Ch, AG, Ae1,... Aek, BCEE1, .... BCEEk}
Mapeamento da Generalização - Alternativa 2Procedimento Padrão 6
OAtC
sobreposição
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.
CEG
CEE1 CEEk
Ch
AG
Ae1 Aek
...
CEE1 = { Ch, AG, AE1 }...CEEk = { Ch, AG, AEk }
Mapeamento da Generalização - Alternativa 3 (não há relação genérica)Procedimento Padrão 7
AtC
participação total
Cada relação com seus atributos gerais e específicos.
Sobreposição – uma dada entidade pode ser várias ao mesmo tempo.
Mapeamento da Generalização - Alternativa 3Procedimento Padrão 8
CEG
CEE1 CEEk
Ch
AG
Ae1 Aek
...
CEEk = { Ch, AG, AEk }
CEC={ Ch, AtC}
AtC
D
participação total
Cada relação com seus atributos gerais e específicos.E outra que indica de qual tipo é cada instância disjunção.
CEG
CEE1 CEEk
Ch
AG
Ae1 Aek
...
CEEk = { Ch, AG, AEk }
CEC={ Ch, AtC}
Mapeamento da Generalização - Alternativa 3Procedimento Padrão 9
AtC
O
participação total
Cada relação com seus atributos gerais e específicos.E outra que indica de qual tipo é cada instância sobreposiçã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}
Os 9 Procedimentos Padrão