Resumo

Propaganda
Evolução dos Sistemas de
Informação

Sistemas de Informação
gerenciamento de arquivos



baseados
em
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
USP – ICMC - GBDI
1
Dados
Aplicações
Arquivo 1
PROBLEMA?????
Arquivo 2
Arquivo 3
REDUNDÂNCIA
Aplicação de
Produção
Arquivos de Dados
de Produção
Produtos
Aplicação de
Vendas
Aplicação de
Compras
Arquivos de Dados
de Vendas
Arquivos de Dados
de Compras
Produtos
Produtos
REDUNDÂNCIA
Aplicação de
Produção
INCONSISTÊNCIA
Aplicação de
Vendas
Insere:
Insere:
Nome: Notebook
NroSerie:1111111
Nome: Notebook
NroSerie:1111111
Fabricante: Y
Fabricante: X
Arquivos de Dados
de Produção
Produtos
Arquivos de Dados
de Vendas
Produtos
Consistência de Dados

Dados em estado inconsistente
informações incorretas ou
contraditórias são fornecidas aos
usuários
USP – ICMC - GBDI
5
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
6
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
7
Além disso...


SIs baseados em arquivos  dados gravados em
disco usando ESTRUTURAS DE DADOS
Acesso requer conhecimento destas estruturas 
DEPENDÊNCIA DE DADOS.
USP – ICMC - GBDI
15
15
46
63
81
97
16

99
8
Dependência dos Dados


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?
TODOS OS PROGRAMAS TERÃO QUE SER ALTERADOS
USP – ICMC - GBDI
9
Independência dos Dados

Como tornar os programas
INDEPENDENTES da estrutura de dados?
CRIANDO UM SISTEMA QUE GERENCIE A ESTRUTURA
Aplicação 1
Aplicação 2
Sistema
Gerenciador de
Dados
Compartilhados
USP – ICMC - GBDI
15
46
63
81
97
15
16

99
10
Independência dos Dados
Sistema de Gerenciamento de Bases (ou Banco) de Dados
SGBD
Aplicação 1
SGBD
15
46
63
81
15
16
97
99

Aplicação 2
USP – ICMC - GBDI
11
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
12
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
USP – ICMC - GBDI
13
Aplicação
Aplicação
Aplicação
SGBD
Esquema - Definição
da base de dados
Instância –
Base de dados
SGBDs

Requisitos Fundamentais:

Segurança


Física (mais comum no passado)
Lógica

Usernames e passwords

Perfis de usuário
USP – ICMC - GBDI
15
SGBDs

Requisitos Fundamentais

(cont):
Integridade


consistência
validade
Nome: Joaquim Pereira
Cargo: Faxineiro
Salário:R$ 230.000,00
Arquivos de
Dados
?????
Restrições de Integridade!!!
USP – ICMC - GBDI
16
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
17
SGBDs

Requisitos Fundamentais

Recuperação / Tolerância a falhas

Transações atômicas


(cont):
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
18
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
19
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
20
Por que usar SGBDs?

Desvantagens


Custo financeiro
Um sistema a mais a ser aprendido e gerenciado
USP – ICMC - GBDI
21
Componentes de um SGBD
SGBD
Processador de
Consultas

Gerenciador de
Armazenamento
Banco de Dados
Dados e
Metadados
Os componentes funcionais do SGBD:


componentes de processamento de consultas
componentes de gerenciamento de
armazenamento
USP – ICMC - GBDI
22
Componentes de um SGBD

Conceitos importantes:
 Pragmatismo:
primeiro
modelagem
(documentada), seguida de definição e
instanciação, e só depois o uso
1.
2.
3.
4.
Modelagem: modelo entidade/relacionamento
Definição: SQL, subconjunto DDL
Instanciação: SQL, subconjuntos DDL/DML
Uso: SQL, subconjunto DML
USP – ICMC - GBDI
23
Componentes de um SGBD

Conceitos importantes:

SQL - 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
24
Componentes de um SGBD

Conceitos importantes


(cont.):
Metadados
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
25
Componentes de um SGBD

Conceitos importantes

(cont.):
SQL - 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
26
Componentes de um SGBD

Conceitos importantes

(cont.):
Data Manipulation Language (DML)

Exemplos em linguagem SQL





insert
select
delete
update
...
USP – ICMC - GBDI
27
Componentes de um SGBD

Conceitos importantes

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


(cont.):
ex: SQL
A interface dos bancos de dados é definida pela
linguagem declarativa SQL (DDL + DML)
USP – ICMC - GBDI
28
Programadores
de aplicações
Usuários Finais
Interfaces de
aplicação
Aplicações
Usuários
Sofisticados
Consulta (Query)
DBAs
Esquema de BD
SGBD
Pré-compilador
de Comandos
DML  DML
embutido no .exe
Programas de
Aplicações em
Código Objeto
Compilador
DML
Componente de
avaliação e execução de
consultas
Gerenciador de
Transações
Interpretador
DDL
Processador de Consultas
Gerenciador de
Buffer
Gerenciador de
Arquivos
Gerenciador de Armazenamento
SGBD
Programas de
Aplicações em
Código Objeto
Processador
de Consultas
Pré-compilador
de Comandos
DML
[Silbesrchats]
Interpretador
DDL
Componente de
execução de consultas
Gerenciador de
Transações
Gerenciador de
Armazenamento
Compilador
DML
Gerenciador de
Buffer
Gerenciador de
Arquivos
Índices
Arquivos de
Dados
Dados
Estatísticos
Dicionário de
Dados
Evolução dos Sistemas de
Bases de Dados
USP – ICMC - GBDI
31
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
32
Evolução dos Sistemas de
Bases de Dados
PC
USP – ICMC - GBDI
33
Evolução dos Sistemas de
Bases de Dados
PC
PCs 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
34
Evolução dos Sistemas de
Bases de Dados
USP – ICMC - GBDI
35
Arquitetura Cliente/Servidor
Aplicações
Dados e
Regras
SGBD
Servidor
Cliente
USP – ICMC - GBDI
36
Arquitetura Cliente/Servidor

Duas camadas
Aplicações
Dados e
Regras
SGBD
Servidor
BD + parte (pequena)
da lógica de negócio
USP – ICMC - GBDI
Cliente
Interface + maior parte
da lógica de negócio
37
Arquitetura Cliente/Servidor

Três camadas
Servidor de Aplicação
Dados e
Regras
Aplicações-Cliente
SGBD
Servidor
BD + parte comum da lógica
de negócio
USP – ICMC - GBDI
Cliente
Interface + parte
específica da lógica
de negócio 38
Arquitetura Cliente/Servidor

Quatro camadas
Servidor de
Aplicação
Dados e
Regras
Servidor de
Interface
Aplicações-Cliente
SGBD
Servidor
USP – ICMC - GBDI
Cliente
39
Aplicação
Aplicação
Aplicação
SGBD
Definição da base de
dados armazenada
Base de dados
armazenada
ESQUEMA
INSTÂNCIA
Esquema e Instância

Banco de dados:
Esquema


Definição
Estático (ou quase!)
Instância


Manipulação
Dinâmica
Esquema
Instância
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.
2.
3.

múltiplas visões para os usuários
armazenamento da descrição da base de dados
(esquema) em diferentes níveis de abstração
independência de dados
Incorporação de características
filosofia de bases de dados
importantes
da
Three-Schema Architecture
Nível Externo
ou de Visão
Sub-Esquemas (views)
Esquema Conceitual
e/ou Esquema Lógico
Esquema Físico
Visão 1
Visão 2
...
Visão N
Nível Conceitual
ou Lógico
Nível Interno ou Físico
Three-Schema Architecture

Nível Interno – esquema 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 conceitual
e/ou lógico

descreve a estrutura da base de dados sem
detalhes de estrutura de armazenamento físico


quais dados
relacionados
estão
armazenados
e
como
descrição do esquema conceitual/lógico:


modelo conceitual (ex: MER)
modelo de implementação (ex: Modelo Relacional)
estão
Three-Schema Architecture

Nível Externo – sub-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
mapeamento
externo/conceitual
mapeamento
conceitual/interno
Visão 1
Visão 2
...
Visão N
Nível Conceitual
ou Lógico
Nível Interno ou Físico
Three-Schema Architecture

Visualização de níveis de esquema em
sistemas de banco de dados 
ABSTRAÇÃ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 dados
múltiplas visões para os usuários OK!!!!
armazenamento da descrição da base de dados
(esquema) em diferentes níveis de abstração
OK!!!!
Independência de Dados


Independência de dados na arquitetura
de três esquemas  capacidade de
modificar
o
esquema
em
determinado nível sem afetar o
esquema do nível superior
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
Independência
Física???
Nível Interno ou Físico
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
nível interno
– reorganização dos



dados – ex:
de novos
mecanismos
de
modificações
no inserção
esquema
interno
não provocam
acesso,nosnovos
índices,
mais
espaço de
alterações
esquemas
lógico
e externo
armazenamento.
por que modificar esquema interno?
quando os esquemas em níveis superiores teriam
que ser alterados?
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
Independência
Lógica???
Nível Interno ou Físico
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
nível conceitual
– reestruturação

lógica – ex.:
tabelas, novos
atributos,
modificações
nonovas
esquema
lógico
não novas
provocam
restrições
integridade 
expansão.
alterações
nosdeesquemas
externos
aplicativos não precisam ser reescritos
No cado de redução, níveis superiores talvez
por que
modificar
esquema
lógico?
tenham
que ser
alterados.
Ex.: exclusão de
atributos,
relacionamentos,
ou superiores
restrições deteriam
quando
os esquemas
em níveis
integridade.



que ser alterados?
Sistemas de Banco de Dados
Ciclo de Vida
Mundo Real
Requisitos
de Dados
Coleta/Especificação
de Requisitos
Projeto Conceitual
Projeto Lógico
Análise Funcional
Protótipo
Projeto Físico
SGBD
Requisitos
Funcionais
Projeto
Implementação
Dados e
Metadados
Aplicação
Sistemas de Banco de Dados
Desenvolvimento de Software
Mundo Real
Requisitos
de Dados
Requisitos
Funcionais
Coleta/Especificação
de Requisitos
Projeto Conceitual
Projeto Lógico
Projeto Físico
SGBD
Análise Funcional
• Projetistas de
Interface
Projeto
Protótipo
• DBA
• Pessoal de Suporte e
Operação
Implementação
Aplicação
Dados e
Metadados
• Analistas de
Sistemas
• Programadores
• Usuários
• Operadores de Aplicação
Sistemas de Banco de Dados
Desenvolvimento de
Sistemas de Banco de Dados
Ciclo de Vida
Mundo Real
• Projetistas
de BD
Requisitos
de Dados
Coleta/Especificação
de Requisitos
Projeto Conceitual
Projeto Lógico
Projeto Físico
SGBD
• Projetistas de
Interface
Protótipo
• DBA
• Pessoal de Suporte e
Operação
Dados e
Metadados
Requisitos
Funcionais
Análise Funcional
Projeto
Implementação
Aplicação
• Usuários
• Operadores de Aplicação
Desenvolvimento de Sistemas
de Banco de Dados [Elmasri]

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]

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


estruturas físicas de armazenamento





nível interno
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 dados
Os Três Reinos - Abstração
Real
Percepção
Máquina
1
Usina
N
Peça
M
1
Tempo
Código
Código
Trabalha
N
Implementação
Imaginário
Material
Total de
horas
M
Empregado
N
N
Composta
por
1
Produto
Verifica
Nome-E
Idade
Padrão
Sigla
Nome-P
Peso
Representação
Modelagem
Idéias
Modelo E/R
Modelo Relacional
SGBD
Relacional
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 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

operadores
estrutura dos dados
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
Sistemas de Banco de Dados
Desenvolvimento de
Sistemas de Banco de Dados
Ciclo de Vida
Mundo Real
Requisitos
de Dados
Coleta/Especificação
de Requisitos
Projeto Conceitual
Projeto Lógico
Projeto Físico
• Projetistas
de BD
SGBD
• Projetistas de
Interface
Protótipo
• DBA
• Pessoal de Suporte e
Operação
Dados e
Metadados
Requisitos
Funcionais
Análise Funcional
Projeto
Implementação
Aplicação
• Usuários
• Operadores de Aplicação
Modelagem Conceitual


Entrada: Requisitos de Dados
Processo:



modelagem – representação conceitual
modelo conceitual (Ex: MER)
Resultado: Esquema 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)
Sistemas de Banco de Dados
Desenvolvimento de
Sistemas de Banco de Dados
Ciclo de Vida
Mundo Real
Requisitos
de Dados
Coleta/Especificação
de Requisitos
Projeto Conceitual
Projeto Lógico
Projeto Físico
• Projetistas
de BD
SGBD
• Projetistas de
Interface
Protótipo
• DBA
• Pessoal de Suporte e
Operação
Dados e
Metadados
Requisitos
Funcionais
Análise Funcional
Projeto
Implementação
Aplicação
• Usuários
• Operadores de Aplicação
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-Relacionamento
(DE-R)
USP – ICMC – GBDI
MER – Construtores Sintáticos
▪ 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
Sobrecarga Semântica
USP – ICMC – GBDI
MER – Construtores Sintáticos
▪ Conjunto de Entidades (CE)
▪ Conjunto de Relacionamentos (CR)
▪ Atributos de Entidades
▪ Atributos de Relacionamentos
USP – ICMC – GBDI
MER
▪ 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
USP – ICMC – GBDI
Conjunto de Entidades
▪ MER não trata Entidades individuais, apenas
Conjuntos de Entidades
▪ Notação DER: retângulo
Disciplina
Pessoa
USP – ICMC – GBDI
Conjunto de Relacionamentos
▪ Relacionamentos  associações entre
entidades do mundo real
▪ Conjuntos de Relacionamentos 
relacionamentos entre entidades dos mesmos
CEs
Disciplina
Pessoa
USP – ICMC – GBDI
Conjunto de Relacionamentos
▪ Notação DER: losango
Matricula
Disciplina
Trabalha
Escola
Pessoa
USP – ICMC – GBDI
Conjunto de Relacionamentos
▪ Ex: vários Conjuntos de Relacionamentos
envolvendo os mesmos Conjuntos de Entidades
Matricula
Pessoa
Faz
Prova
USP – ICMC – GBDI
Disciplina
Atributos
▪ Atributos  valores que representam
propriedades das entidades e
relacionamentos no mundo real
▪ atributos de entidades
▪ atributos de relacionamentos
USP – ICMC – GBDI
Atributos de Entidades
▪ Notação DER: elipses ligadas aos
Conjuntos de Entidades
Pessoa
Matricula
Disciplina
Sigla
Nome
Nome
No. USP
USP – ICMC – GBDI
Número
Créditos
Atributos de Entidades
▪ 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???
USP – ICMC – GBDI
Conjunto
▪ Conjuntos: conceito que fundamenta quase toda
a matemática;
▪ Definição: coleção de elementos distintos (sem
repetição) e sem ordem definida (apenas
eventual);
▪ Conjuntos são a base dos SBGDs;
▪ Como definir conjuntos em SGBDs?
USP – ICMC – GBDI
Restrição de Unicidade Chave
▪ Restrição de Unicidade:
▪ Todo conjunto de entidades deve ter
um atributo, ou um conjunto de
atributos, cujo valor identifique
univocamente cada entidade no
conjunto
CHAVE
USP – ICMC – GBDI
Restrição de Unicidade - Chave
▪ Chave Simples:
▪ Notação DER: grifar atributo chave
Pessoa
NUSP
Nome
CPF
USP – ICMC – GBDI
Anotação:
CPF é identificador
Restrição de Unicidade Chave
▪ Chave:
▪ 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
USP – ICMC – GBDI
Restrição de Unicidade - Chave
▪ Chave Simples:
▪ Notação DER: grifar atributo chave
Pessoa
NUSP
Nome
CPF
USP – ICMC – GBDI
Anotação:
CPF é identificador
Restrição de Unicidade - Chave
▪ Chave Composta:
▪ entidade precisa de mais de um atributo
para identificação
▪ a concatenação de todos estes atributos
indica a chave única
▪ Notação DER: todos
os atributos da chave
grifados
Sala Aula
Campus
Bloco
Número
USP – ICMC – GBDI
Capacidade
Atributos
▪ Ex: onde colocar um atributo NOTA???
Pessoa
Matricula
Disciplina
Sigla
Nome
Nome
No. USP
Número
Créditos
USP – ICMC – GBDI
Atributos
▪ Ex: onde colocar um atributo NOTA???
Se fosse um atributo de Pessoa, cada pessoa
teria uma nota única para qualquer disciplina
Matricula
Pessoa
Nome
No. USP
Nota
USP – ICMC – GBDI
Disciplina
Sigla
Nome
Número
Créditos
Atributos
▪ Ex: onde colocar um atributo NOTA???
Se fosse um atributo de Disciplina, todas as
pessoas matriculadas numa disciplina teriam a
mesma nota
Pessoa
Disciplina
Matricula
Nome
No. USP
USP – ICMC – GBDI
Nota
Sigla
Nome
Número
Créditos
Atributos de Relacionamentos
▪ Ex: onde colocar um atributo NOTA???
em MATRICULA!!!
Pessoa
Nome
No. USP
Matricula
Nota
USP – ICMC – GBDI
Disciplina
Sigla
Nome
Número
Créditos
Atributos de Relacionamentos
▪ Observação: os CEs sempre possuem
atributos, mas os CRs podem existir mesmo
que não tenham atributos próprios
▪ 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
Nome
NUSP
Endereço
Composto
Pessoa
Notação
Rua
Número
CEP
Cidade
USP – ICMC – GBDI
Nome
NUSP
Endereço
Rua
Número
CEP
Cidade
Atributo Composto
Pessoa
Pessoa
Nome
NUSP
Notação
Endereço
EndRua
CEP
Cidade
Nome
Numero
Apart
USP – ICMC – GBDI
Nome
NUSP
Endereço
EndRua
CEP
Cidade
Nome
Número
Apart
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
Atributo Multivalorado
Aluno
Multivalorado
Aluno
Nome
Nome
N.Ser.Med.
Notação
Alergias
USP – ICMC – GBDI
N.Ser.Med.
Alergias
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
Atributo Derivado
Aluno
Derivado
Aluno
Nome
Nome
Data Nascimento
Notação
Idade
Data Nascimento
Idade
USP – ICMC – GBDI
Atributo Derivado
Pessoa
Matricula
Disciplina
Sigla
No. USP
Nome
Número
Créditos
Nome
Nro Disciplinas
USP – ICMC – GBDI
Conjunto de Relacionamentos -
Papéis
▪ Cada CE que participa de um CR tem um
PAPEL no CR
▪ Indicação opcional
▪ pode facilitar entendimento da
modelagem
Matricula
Pessoa
Matricula
Matriculada
emUSP – ICMC – GBDI
Disciplina
Conjunto de Relacionamentos -
Papéis
▪ Indicação de papéis deve ser feita sempre
que houver ambigüidade na interpretação
do CR
Empresa
Contrata
Contrata
Contratada
por
Contratado
por
Contrata
?
?
USP – ICMC – GBDI
Curso
Conjunto de Relacionamentos -
Papéis
▪ em geral CEs assumem papéis distintos em
CRs distintos
Pessoa
matriculada
matricula
em
Disciplina
Matricula
conclui
Concluir
Nota
USP – ICMC – GBDI
é concluída
Conjunto de Relacionamentos -
Papéis
▪ Auto-Relacionamento:
▪ um mesmo CE desempenha mais de um
papel num mesmo CR
tem pré-requisito
Pré Requisito
Disciplina
é pré-requisito
USP – ICMC – GBDI
Conjunto de Relacionamentos -
Cardinalidade
▪ Cardinalidade
Restrição 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
USP – ICMC – GBDI
Conjunto de Relacionamentos Cardinalidade
Ementa
1
Descreve
1
Disciplina
Um para Um
Professor
1
Tutora
N
Turma
Um para Muitos
Pessoa
N
Matricula
Muitos
para Muitos
USP – ICMC – GBDI
M
Disciplina
Conjunto de Relacionamentos –
Restrição de Participação
▪ Restrição de Participação
Restrição Estrutural
▪ Participação Total
▪ Participação Parcial
USP – ICMC – GBDI
117
Conjunto de Relacionamentos
▪ Considere o exemplo:
Curso
1
Possui
N Disciplina
 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?
USP – ICMC – GBDI
118
Conjunto de Relacionamentos –
Participação Total
▪ 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
Curso
1
Possui
N Disciplina
Participação Total de Disciplina em Possui
USP – ICMC – GBDI
119
Conjunto de Relacionamentos –
Participação Total
▪ Participação
Existencial
Total
ou
Dependência
▪ toda entidade de um CE deve participar,
obrigatoriamente,
de
relacionamento do CR
ao
menos
um
▪ uma entidade só existe se estiver associada a outra
entidade por meio de um relacionamento
USP – ICMC – GBDI
120
Conjunto de Relacionamentos –
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
Aluno
N
Monitora
N Disciplina
Participação Parcial de Aluno em Monitora
USP – ICMC – GBDI
121
Conjunto de Relacionamentos

Considere o exemplo, para a base de dados
de uma empresa:
Dependente
N
Possui
1 Funcionário
Nome
CPF
Nome
Parentesco
Como identificar um dependente na
SEMÂNTICA do domínio de aplicação?
USP – ICMC – GBDI
122
Conjunto de Relacionamentos –
Entidade Fraca
N
Possui
Dependente
1
Funcionário
Nome
CPF
Nome
Parentesco
um Dependente é identificado por meio do
Funcionário ao qual está associado
ENTIDADE FRACA!
USP – ICMC – GBDI
123
Conjunto de Relacionamentos –
Entidade Fraca
▪ Entidade 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)
USP – ICMC – GBDI
124
Conjunto de Relacionamentos–
Entidade Fraca

Notação DER:
 Entidade Fraca: traço duplo no retângulo
 CR Identificador: traço duplo no losango
Entidade Fraca
Dependente
N
Possui
1 Funcionário
Nome
Parentesco
Relacionamento Identificador
Nome
CPF
USP – ICMC – GBDI
125
Conjunto de Relacionamentos–
Entidade Fraca

Chave Parcial:
um ou mais atributos de CEs
Fracas que podem identificar univocamente as
entidades fracas relacionadas a um mesmo owner
Dependente
N
Possui
1 Funcionário
Nome
CPF
Nome
Parentesco
Notação DER: traço pontilhado
Chave Parcial
USP – ICMC – GBDI
126
Conjunto de Relacionamentos –
Entidade Fraca
▪ 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
Por que?
USP – ICMC – GBDI
127
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
relacionamentos além daquele que a identifica
outros
USP – ICMC – GBDI
129
Conjunto de Relacionamentos–
Entidade Fraca

Ex:
Turma
Turma
N
1
Possui
Disciplina
N
Nome
Sigla
Nro Alunos
Matricula
N
USP – ICMC – GBDI
Aluno
Nome
NUSP
130
Conjuntos de Relacionamentos Grau
▪ 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
▪ ....
USP – ICMC – GBDI
131
Conjuntos de Relacionamentos Grau
Pessoa
N
M
Matricula
Disciplina
Binário
Aluno
Monitora
Monitora
Monitorada por
Disciplina
Auxiliado por
Professor
USP – ICMC – GBDI
Ternário
132
Relacionamento Ternário –
Determinando Cardinalidade...
▪ Dado um Professor e uma Disciplina, pode
existir mais de um aluno monitor que a
monitora
Aluno
N
Monitora
Disciplina
?
Professor
USP – ICMC – GBDI
133
Relacionamento Ternário –
Determinando Cardinalidade...
▪ Dado um Professor e um Aluno monitor, existe
no máximo uma disciplina que esse aluno
monitora
Aluno
N
Monitora
1
Disciplina
?
Professor
USP – ICMC – GBDI
134
Relacionamento Ternário –
Determinando Cardinalidade...
▪ Dado uma Disciplina e um Aluno monitor, mais
de um professor pode ser responsável
Aluno
N
Monitora
1
Disciplina
N?
Professor
USP – ICMC – GBDI
135
Relacionamento Ternário –
Cardinalidade
▪ Cardinalidades possíveis para Ternários:
▪
▪
▪
▪
1:1:1
1:1:N
1:N:P
N:M:P
Aluno
N
Monitora
1
Disciplina
N
Professor
USP – ICMC – GBDI
136
Relacionamento Ternário
▪ Podemos tentar “quebrar” o relacionamento ternário em
vários binários?
Aluno
Monitora
Monitora
N
Monitorada por
N
Disciplina
N
N
Auxilia
Auxiliar
N
Auxiliada
por
Professor
Ministra
N
Ministrada
por
Ministra
problema???
USP – ICMC – GBDI
137
Relacionamento Ternário
Problema
perda de informação semâ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?
Aluno
Auxilia
Monitora
N
Monitora
Monitorada por
Disciplina
N
N
N
Auxiliar
N
Professor
Auxiliada
USP
– ICMC – GBDI
por
Ministra
N
Ministrada
por
Ministra
138
Relacionamento Ternário
▪ Mesmo Conjunto de Entidades com vários
papéis
Compra
Vendido
Produto
N
Empresa
Negociar
P
M
Vende
Uma Empresa (vendedora) negocia Produtos com outra
Empresa (compradora)
USP – ICMC – GBDI
139
Relacionamento Ternário
M
Promover
Vendas
Compra
Vende
N
Assessora
Empresa
P
Uma Empresa (Assessora) Promove a Venda de
uma outra Empresa (Vendida) para uma terceira
Empresa (Compradora)
USP – ICMC – GBDI
140
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
145
Abstração de Agregação
 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
USP – ICMC - GBDI
146
Abstração de Agregação
 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)
USP – ICMC - GBDI
147
Abstração de Agregação

Ex: parte do DER para uma aplicação
Consultório Médico
N
Paciente
RG
Nome
Atende
Data
M Médico
CRM
Nome
Como identificar cada atendimento (consulta)?
USP – ICMC - GBDI
148
Abstração de Agregação
Ex: parte do DER para uma aplicação
Consultório
Médicosó pode atender um dado
Problema:
cada médico

paciente uma única vez.
N
Paciente
RG
Nome
Atende
Data
M Médico
CRM
Nome
Como identificar cada atendimento (consulta)?
USP – ICMC - GBDI
149
Abstração de Agregação

Exemplo (cont...):

com RG, CRM e Data é possível identificar cada
consulta univocamente
Paciente N
RG
Nome
Atende
Data
M Médico
CRM
Nome
USP – ICMC - GBDI
150
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
151
Abstração de Agregação

Onde colocar Data ?
Consulta
Paciente N
Atende
RG
Nome
Data
M Médico
CRM
Nome
USP – ICMC - GBDI
152
Abstração de Agregação
Elementos
Componentes
Consulta
Paciente N
RG
Nome
Atende
Data
Relacionamento
Gerador da
Agregação USP – ICMC - GBDI
M Médico
Entidade
Agregada
(elemento
composto)
CRM
Nome
Atributo da Entidade
Agregada
153
Abstração de Agregação

Chave de Consulta composta por RG,
CRM e Data
Consulta
Paciente N
Atende
RG
Nome
Data
M Médico
CRM
Nome
USP – ICMC - GBDI
154
Abstração de Agregação

Exemplo (cont...):
Paciente N
RG
Nome
Atende
Data
Preço
Consulta
M Médico
CRM
Nome
N
Tem
1
Nro
Recibo
USP – ICMC - GBDI
155
Abstração de Agregação

Ex: parte do DER para uma aplicação PósGraduação

o Título sob o qual é realizada uma orientação é
único para todo o sistema

um atributo do relacionamento poderia identificálo univocamente
Professor M
Nome
Orienta
Título
N
AlunoPós
NUSP
USP – ICMC - GBDI
156
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
Projeto
Professor M
Orienta
Nome
N
AlunoPós
NUSP
Título
USP – ICMC - GBDI
157
Abstração de Agregação

Exemplo (cont...):
Projeto
Professor M
Nome
Orienta
Título
Início
USP – ICMC - GBDI
N
AlunoPós
NUSP
N
Financia
1
Agência
de
Fomento
158
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?
Livro
Texto
Aula
Professor N
Nome
Ministra
Data/Horário
N Disciplina
Código
USP – ICMC - GBDI
159
Abstração de Agregação

Ex: parte do DER para uma aplicação Agência de
Empregos
Candidato N
Entrevista
M Empresa
CNPJ
Nome
RG
Nome
Como modelar: algumas entrevistas resultam
numa oferta de emprego (com cargo e salário
inicial) e outras não....
160
USP – ICMC - GBDI
Abstração de Agregação
Entrevista
Candidato N
RG
Nome
M Empresa
Entrevista
1
CNPJ
Nome
Data
Resulta
N
Emprego
Cargo
Salario
USP – ICMC - GBDI
N_vagas
161
Abstração de Agregação
 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
Consulta
Paciente N
RG
Nome
Atende
NroRegistro
USP – ICMC - GBDI
M Médico
CRM
Nome
Anotação
complementar:
RG, CRM e Data
são identificadores
Data
163
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


o CR possui um identificador próprio


ex: CEs paciente e médico, CR atende
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
164
Abstração de Generalização –
Introdução
Genérico
Especializa
(detalha)
Específico
Generaliza
(abstrai)
Is-a
Herança
USP – ICMC - GBDI
165
Abstração de Generalização –
Introdução
 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/Especialização
USP – ICMC - GBDI
166
Abstração de Generalização –
Notação DER-X
Entidade Abstrata
(Entidade Genérica
ou Supertipo)
Pessoa
Entidade Detalhe
(Entidade Específica
ou Subtipo)
Direção do
Relacionamento:
Especialização
Aluno
Professor
Funcionário
USP – ICMC - GBDI
167
Abstração de Generalização
 Generalização - elementos de um conjunto
são distribuídos em diversos subconjuntos
(subtipos)
 relacionamento Is-a
Pessoa={p1, p2, p3, p4, ...}
Pessoa
Aluno= {p1, p3, ...}
Aluno
Professor
Funcionário
Aluno  Pessoa
USP – ICMC - GBDI
168
Abstração de Generalização
 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)
Aluno
Pessoa
Professor
Funcionário
USP – ICMC - GBDI
169
Critério de Especialização
 Critério Definido pelo Usuário  CE(s)
Específico(s) indicado(s) explicitamente na inserção
da entidade
Pessoa
Aluno
Professor
Funcionário
USP – ICMC - GBDI
170
Critério de Especialização
 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
Nome
Pessoa
Vínculo
Critério de
Especialização
Vínculo
‘aluno’
‘funcionário’
‘docente’
Aluno
Professor
USP – ICMC - GBDI
Funcionário
171
Herança
 Conceito fundamental: HERANÇ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
USP – ICMC - GBDI
172
Herança
Nome
Idade
Altura
Pessoa
Vínculo
Vínculo
N#USP
 a chave do CE
específicos é
herdada do CE
genérico
 chave definida
implicitamente
‘aluno’
Curso
‘docente’
Aluno
Professor
‘funcionário’
Funcionário
N#Func
Função
USP – ICMC - GBDI
173
Herança
 CEs específicos herdam todos os CRs definidos para o
CE genérico
Nome
Idade
Altura
1
Pessoa
possui
N
Plano Saúde
Vínculo
Vínculo
N#USP
‘aluno’
Curso
‘docente’
Aluno
Professor
‘funcionário’
Funcionário
USP – ICMC - GBDI
N#Func
Função
174
Herança em Múltiplos Níveis
Nome
Idade
Pessoa
Altura
Vínculo
N#USP
Curso
Aluno
Professor
Funcionário
N#Func
Função
Graduação
Semestre
Pós-Grad.
Formação
Técnico
Secretária
Especialidade
175
Nome
Exemplo:
Idade
Pessoa
Altura
Vínculo
N#USP
Curso
Aluno
Graduação
Herança
Múltipla
Funcionário
Pós-Grad.
Professor
Assistente
Prof/Aluno
Titulação
Doutor
Herança Múltipla
 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
USP – ICMC - GBDI
177
Exemplo:
Herança Múltipla
Veículo
Aquático
Terrestre
Automóvel
Anfíbio
Barco
Herança Múltipla

Podemos criar uma hierarquia de
especialização com mais de um CE
genérico?
 NÃO!!!
Por que?
USP – ICMC - GBDI
179
Quando Especializar?
 CASO 1:
 determinados atributos aplicam-se somente a
alguns CEs específicos
Atributos
Genéricos
Nome
Idade
Altura
Pessoa
Atributos
Específicos
Vínculo
Vínculo
N#USP
‘aluno’
Curso
Atributos
Específicos
‘docente’
Aluno
Professor
‘funcionário’
Funcionário
N#Func
Função
Quando Especializar?
 CASO 2:
 existem relacionamentos
dos quais participam apenas
entidades de alguns CEs
específicos
Aluno
cursa
Disciplina
Pessoa
Professor
Funcionário
ministra
USP – ICMC - GBDI
181
Restrições da Abstração de
Generalização
 Restrição de Disjunção
 Exclusão Mútua
Ch
CEG
 Sobreposição
AG
 Restrição de Totalidade
 Especialização Total
 Especialização Parcial
CEE1
CEE2
AE1
AE2
...
CEEi
AEi
USP – ICMC - GBDI
184
Restrição de Disjunção
Sigla
Disciplina
Nome
Exclusão Mútua - uma
disciplina deve ser somente de
um tipo
Tipo
Tipo
D
‘grad’
‘pós’
Grad.
Pós-Gr.
Semestre
Nível
USP – ICMC - GBDI
185
Restrição de Disjunção
 Abstração de Generalização é mutuamente exclusiva
se, para qualquer par de CEEs j e k distintos, vale:
 CEEj  CEEk = 
AG
D
CEE1
CEE2
AE1
AE2
Notação
Ch
CEG
...
CEEi
Exclusão Mútua
D
USP – ICMC - GBDI
AEi
186
Restrição de Disjunção
Nome
Pessoa
Função
Função
O
‘vigia’
Vigia
Turno
‘secretário’
Secretário
Nível
Sobreposição - um
funcionário pode acumular
mais de uma função ao
mesmo tempo
‘bibliotecário’
Bibliotecário
Seção
USP – ICMC - GBDI
187
Restrição de Disjunção
 Abstração de Generalização é definida com sobreposição
se para algum par de CEEs j e k distintos:
CEEj  CEEk  

Ch
CEG
Notação
AG
O
CEE1
CEE2
AE1
AE2
Sobreposição
...
CEEi
O
AEi
USP – ICMC - GBDI
188
Restrição de Totalidade
Sigla
Nome
Tipo
‘grad’
Especialização Total qualquer disciplina é de
pelo menos um tipo:
graduação, pós-graduação,
e/ou especialização
Disciplina
tipo
‘pós’
Grad.
Pós-Gr.
Semestre
Nível
‘espec.’
Especializ.
N#Horas
USP – ICMC - GBDI
189
Restrição de Totalidade
 Abstração de Generalização é Total quando todas as
entidades genéricas estão em pelo menos um dos CEEs:
 UK CEEk = CEG
AG
CEE1
CEE2
AE1
AE2
Notação
Ch
CEG
...
Total
CEEi
USP – ICMC - GBDI
AE
i
190
Restrição de Totalidade
Nome
Função
‘vigia’
Vigia
Turno
Especialização Parcial –
uma pessoa pode, por
exemplo, ter a função de
Gerente de Recursos
Humanos (que não está
definida como subtipo)
Pessoa
função
‘secretário’
Secretário
Nível
USP – ICMC - GBDI
‘bibliotecário’
Bibliotecário
Seção
191
Restrição de Totalidade
 Abstração de Generalização é Parcial quando existem
entidades genéricas que não estão em nenhum CEE:
 Uk CEEk  CEG
Ch
CEG
Notação
AG
Parcial
CEE1
CEE2
AE1
AE2
...
CEEi
USP – ICMC - GBDI
AE
i
192
As Restrições da Abstração de
Generalização
 Restrições de cada ocorrência da abstração
dependem da semântica do mundo real
Ch
CEG
AG
CEE1
CEE2
AE1
AE2
...
CEEi
Possibilidades
Parcial Exclusiva
Parcial Sobreposta
Total Exclusiva
Total Sobreposta
AEi
USP – ICMC - GBDI
193
Parcial Exclusiva
Sigla
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
Disciplina
Nome
Tipo
tipo
D
‘grad’
‘pós’
Grad.
Pós-Gr.
Semestre
Nível
Uma disciplina só pode ser
de um tipo
USP – ICMC - GBDI
194
Total Exclusiva
Sigla
Só há disciplinas de
graduação, de pós-graduação,
e de especialização
Disciplina
Nome
Tipo
tipo
D
‘grad’
Uma disciplina ou é de graduação
ou de pós, ou de especialização
‘pós’
Grad.
Pós-Gr.
Semestre
Nível
‘espec.’
Especializ.
N#Horas
USP – ICMC - GBDI
195
Parcial Sobreposta
Nome
Pessoa
Além de Vigia, Secretário e
Bibliotecário, há outras funções
Função
função
O
‘vigia’
Vigia
Turno
‘secretário’
Secretário
Nível
‘bibliotecário’
Bibliotecário
Um funcionário pode acumular
mais de uma função, por
exemplo Secretário e
Bibliotecário, ao mesmo tempo
Seção
USP – ICMC - GBDI
196
Total Sobreposta
NUSP
Há somente alunos de
graduação, de pós-graduação,
e de especialização
Aluno
Nome
Tipo
tipo
O
‘grad’
‘pós’
Grad.
Pós-Gr.
Ano Ingresso
M/D
‘espec.’
Um aluno pode ao mesmo tempo
estar matriculado em um curso
de graduação e em um curso de
especialização, por exemplo
Especializ.
USP – ICMC - GBDI
197
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
Sistemas de Banco de Dados
Desenvolvimento de
Sistemas de Banco de Dados
Ciclo de Vida
Mundo Real
Requisitos
de Dados
Coleta/Especificação
de Requisitos
Projeto Conceitual
Projeto Lógico
Projeto Físico
• Projetistas
de BD
SGBD
• Projetistas de
Interface
Protótipo
• DBA
• Pessoal de Suporte e
Operação
Dados e
Metadados
Requisitos
Funcionais
Análise Funcional
Projeto
Implementação
Aplicação
• Usuários
• Operadores de Aplicação
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
200
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ÇÕES
USP – ICMC – GBDI
201
Terminologia
▪ Relação
▪ Tabela
▪ Tupla
▪ Registro, linha
▪ Atributo
▪ Campo
▪ Valor
▪ Relation Intension
▪ Esquema
▪ Relation Extension
▪ Instância
USP – ICMC – GBDI
202
Modelo Intuitivo
Nome NUSP
Curso ….
Paulo
9999
Info
Izabella 8888
Info
João
Comp
1111
Esquema
Instância
USP – ICMC – GBDI
203
Modelo Intuitivo
Nome NUSP
Curso
Atributo
Tupla
Paulo
9999
Info
Izabella 8888
Info
João
Comp
1111
Valor
USP – ICMC – GBDI
204
Valores

Modelo relacional  valores são atômicos

Valor 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
Domínios
▪
Domínio de aplicação
▪
Exemplos:
▪
Escola
▪
Universidade
▪
Cidade
▪
Domínio de atributo
▪
Exemplos:
▪ Nomes de Alunos
▪ Códigos de Disciplinas
▪ Idade
USP – ICMC – GBDI
206
Domínios
▪ Especificação do Domínio de atributo:
▪ Nome
▪ Definição lógica
▪ Tipo de dado e formato de dado
USP – ICMC – GBDI
207
Especificação do Domínio
▪ Nome e Definiçã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
USP – ICMC – GBDI
208
Especificação do Domínio
▪ Tipo 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
USP – ICMC – GBDI
209
Esquema de Relações
▪ Esquema de relação: descreve a
relação
▪ R (A1, A2, ..., An)
▪ ou R = {A1, A2, ..., An}
▪ R - nome da relação
▪ (A1, A2, ..., An) - conjunto de atributos
que formam a relação
USP – ICMC – GBDI
210
Esquema de Relações
▪ N - grau da relação descrita por R
▪ número de atributos em
R
▪ Dom(Ai) - Domínio do Atributo Ai
▪ Ex:
▪ uma relação de Alunos que tenha os atributos
Nome, RG e Idade, tem o seguinte esquema:
Aluno(Nome, RG, Idade)
USP – ICMC – GBDI
211
Exemplo

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
212
Exemplo

Esquema da relação Aluno:


(cont.)
Aluno={Nome, RG, Idade}
Domínios dos atributos de Aluno:
Dom(Nome) = Nomes de Alunos
 Dom(RG) = RG
 Dom(Idade) = Idade

USP – ICMC – GBDI
213
Relações

Relação R – instância do Esquema de
Relação R (A1, A2, ..., An)

R(R)
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
214
Relações
▪ Número total de tuplas possíveis:
▪ |Dom(A1)| X |Dom(A2)| X ... X|Dom(An)|
▪ R(R) contém apenas as tuplas válidas que
representam a situação de um determinado
instante do mundo real
▪ Esquema de Relação R (relation intension) 
mudanças pouco freqüentes
▪ Relação R (relation extension)  dinâmica
USP – ICMC – GBDI
215
Relações
▪ 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>}
USP – ICMC – GBDI
216
Relações
▪ 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
USP – ICMC – GBDI
217
Relações
▪ 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
USP – ICMC – GBDI
218
Restrições das Relações

Restrição de domínio


Restrição de null para atributo


o valor de cada atributo A deve ser um valor
atômico pertencente a Dom(A)
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
219
Restrição de Unicidade
▪ 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
USP – ICMC – GBDI
220
Restrição de Unicidade
▪ Superchave
▪ conjunto de atributos de uma relação R
que identifique univocamente cada tupla
▪ SCHk(R) = {Aj, ..., Ai}|{Aj, ..., Ai}  R
▪ Combinação de valores não se repete
▪ Exemplo:
▪ Aluno = {Nome, Idade, Curso, NUSP}
▪ SCH1(Aluno) = {Nome, Curso, Idade}
▪ SCH2(Aluno) = {NUSP, Nome}
USP – ICMC – GBDI
221
Restrição de Unicidade
▪ Chave
▪ é uma superchave da qual não se pode
retirar nenhum atributo e ainda
preservar a propriedade de
identificação unívoca  superchave
mínima
USP – ICMC – GBDI
222
CHAVE
▪ CHk(R) = {Ai, ..., Aj}|{Ai, ..., Aj} 
R
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}
USP – ICMC – GBDI
223
Chave
▪ 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}
USP – ICMC – GBDI
224
Chave
▪ Chave Primária
▪ escolhida entre as chaves candidatas
▪ a chave primária é freqüentemente a
mais utilizada para acessos à relação
▪ Exemplo:
▪ CH0(Aluno) = {NUSP}
USP – ICMC – GBDI
225
Chave
▪ Notação no Esquema da Relação
▪ CH0(Aluno) = {NUSP}
▪ CH1(Aluno) = {Nome}
Aluno = {Nome, Idade, Curso, NUSP}
Chave secundária
Chave primária
USP – ICMC – GBDI
226
Base de Dados Relacional
▪ O esquema S de uma base de dados
relacional é composto por:
1) um conjunto de esquemas de
relações
S = {R 1, R 2, ..., R n}
2) um conjunto de Restrições de
Integridade 
USP – ICMC – GBDI
227
Base de Dados Relacional
▪ 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 i
e cada Ri satisfaz todas as restrições
indicadas em 
USP – ICMC – GBDI
228
Base de Dados Relacional
R2
R1
BASE DE DADOS
R3
R4
USP – ICMC – GBDI
229
Exemplo
▪ 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}
USP – ICMC – GBDI
230
Restrições de Integridade
▪ 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
USP – ICMC – GBDI
231
Restrições de Integridade
▪ Principais restrições de integridade
para um BD relacional:
▪ Restrições de Integridade da
Entidade
▪ Restrições de Integridade
Referencial
USP – ICMC – GBDI
232
Restrições de Integridade
▪ 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
USP – ICMC – GBDI
233
Restrições de Integridade
▪ 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
USP – ICMC – GBDI
234
Restrições de Integridade Referencial

Restrição de Integridade
Referencial está vinculada ao
conceito de chave estrangeira

conceito fundamental: compatibilidade
de domínio
USP – ICMC – GBDI
235
Restrições de Integridade Referencial
▪ Compatibilidade 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:???
USP – ICMC – GBDI
236
Restrições de Integridade Referencial
▪ FK é uma Chave 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, tkR2

ou é nulo  ti[FK] = null
USP – ICMC – GBDI
237
Restrições de Integridade Referencial
▪ 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
R 1[FK]
CE
USP – ICMC – GBDI
R 2[PK]
238
Restrições de Integridade Referencial
▪ 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
USP – ICMC – GBDI
Pergunta: a chave
estrangeira {F,G}
pode ser nula? Por
que?
239
Restrições de Integridade Referencial
Pergunta: a chave
estrangeira
{Departamento} pode
ser nula? Por que?
▪ Exemplo:
Departamento = {Cod, NomeD}
Empregado = {NomeE, Departamento}
USP – ICMC – GBDI
240
Exemplo
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 >}
Quais 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?
Disciplina
Aluno
Sigla
Nome
Nome
No. Créditos
NUSP
CPF
RG
USP – ICMC – GBDI
243
Atributo Composto
Pessoa
NUSP
Nome
Endereço
Rua
Número
CEP
Cidade
Pessoa = {Nome, NUSP, Rua,
Número, CEP, Cidade}
Passo 2

Como mapear Conjuntos de Entidades
Fracas?
Turma
N
Corresponde
1 Disciplina
Sigla
Nome
Número
Horário
Sala
No. Créditos
USP – ICMC – GBDI
245
Entidades fracas
Número
Sigla
Horário
Sala
Nome
Turma
No. Créditos
N
Corresponde
1 Disciplina
1
Tem
Disciplina = {Sigla, Nome, NroCreditos}
N
Aula Prática
Código
Turma = {Número, Sigla, Horário, Sala}
Horário
Laboratório
Aula_Prática = {Código, Horário, Laboratório, Número, Sigla}
Passo 3
▪ Como mapear Conjuntos de Relacionamentos
Binários com Cardinalidade 1:1?
Conferência
Nome
1
organiza
1
Comissão
Cod
Data
Instalação
USP – ICMC – GBDI
NroMembros
247
Relacionamentos Binários
▪ Cardinalidade 1:1
Conferência
1
Nome
organiza
1
Comissão
Cod
Data
Instalação
NroMembros
Conferência = {Nome}
Comissão = {Cod, NroMembros, Conferência, DtaInst}
Relacionamentos Binários
▪ Cardinalidade 1:1
Conferência
Nome
1
organiza
1
Comissão
Cod
Data
Instalação
NroMembros
Conferência = {Nome, CodComissão, DtaInst}
Comissão = {Cod, NroMembros}
Relacionamentos Binários
▪ Cardinalidade 1:1
Gerente
Nome
1
participa
1
(obrigatoriamente!)
Gerente = {Nome, Projeto}
Projeto = {Cod}
Projeto
Cod
 Restrição de null: na
relação Gerente o
atributo Projeto deve
ser definido como não
nulo.
Alternativas para o Mapeamento
Relacionamentos Binários 1:1
Conferência
1
Nome
organiza
1
Comissão
Cod
Data
Instalação
NroMembros
 Mapeamento usual:
 Conferência = {Nome, CodComissão, DataInstalação}
 Comissão = {Cod, NroMembros}
 Alternativa - uma só relação:
ConfCom = {Nome, CodComissão, NroMembros, DataInstalação}
Alternativas para o Mapeamento
Relacionamentos Binários 1:1
Pouca
Participação
1
Homem
Namora
Nome
Idade
tempo
Considerações: o CR Namora
representa relacionamentos de
namoro na USP São Carlos!
Mulher
1
Nome
Idade
 Mapeamento usual
Muitos valores
nulos!!
Mulher = {Nome, Idade}
Homem = {Nome, Idade, NomeM, tempo}
Alternativas para o Mapeamento
Relacionamentos Binários 1:1
 Mapeamento alternativo
Mulher = {Nome, Idade}
Homem = {Nome, Idade}
Namoro = {NomeH, NomeM, tempo}
Desvantagem????
Alternativas para o Mapeamento
Relacionamentos Binários 1:1
 Mapeamento alternativo
Mulher = {Nome, Idade}
Homem = {Nome, Idade}
Namoro = {NomeH, NomeM, tempo}
Desvantagem????
Mais relações e mais junções
Papéis dos Relacionamentos
1 Anterior
Diretor
Sucede
1 Sucessor
Nome
Diretor = {Nome, NomeAntecessor}
Passo 4
▪ Como mapear Conjuntos de Relacionamentos
Binários com Cardinalidade 1:N?
Professor
1
Ministra
N
Disciplina
Sigla
Nome
Horário
USP – ICMC – GBDI
Nome
No. Créditos
256
Relacionamentos Binários
▪ Cardinalidade 1:N
Professor
1
Ministra
N
Disciplina
Sigla
Nome
Horário
Nome
No. Créditos
Professor = {Nome}
Disciplina = {Sigla, Nome, Créditos, Professor, Horário}
Alternativas para o Mapeamento
Relacionamentos Binários 1:N
Pouca
Participação
Disciplina
Sigla
NCreditos
1
Considerações: poucos
alunos monitoram alguma
disciplina
Monitora
N
Horário
Aluno
NUSP
Nome
 Mapeamento usual:
Muitos valores
nulos!!
Disciplina = {Sigla, NCréditos}
Aluno = {NUSP, Nome, Sigla, Horário}
Alternativas para o Mapeamento
Relacionamentos Binários 1:N
 Mapeamento alternativo:
Disciplina = {Sigla, NCréditos}
Aluno = {NUSP, Nome}
Monitora = {NUSP, Sigla, Horário}
Obs: definir restrição de null para o
atributo Sigla (em Monitora), para
que ele não possa ter valor nulo
Passo 5
▪ Como mapear Conjuntos de Relacionamentos
Binários com Cardinalidade M:N?
Aluno
M
Matriculado
Sigla
NUSP
Nome
N
Disciplina
Nota
USP – ICMC – GBDI
Nome
No. Créditos
260
Relacionamentos Binários –
▪ Cardinalidade M:N
Aluno
Matriculado
M
N
Disciplina
Sigla
NUSP
Nota
Nome
Nome
No. Créditos
Aluno = {NUSP, Nome}
Disciplina = {Sigla, Nome, Créditos}
Matriculado = {NUSP, Sigla, Nota}
Passo 6
▪ Como mapear Conjuntos de Relacionamentos com grau > 2?
Projeto
CodP
Início
Fornece
P
Qtde
N
Fornecedor
CodF
M
Nome
Peça
Nome
USP – ICMC – GBDI
262
Relacionamentos Ternários
Projeto
CodP
Fornece
P
Qtde
Início
N
Fornecedor
CodF
M
Nome
Peça
Projeto = {CodP, Início}
Nome
Fornecedor = {CodF, Nome}
Peça = {Nome}
Fornece= {CodP, Nome, CodF, Qtde}
Relacionamentos Ternários
Aluno
NUSP
Monitora
1
Horário
Nome
N
Disciplina
Sigla
M
Nome
No. Créditos
Professor
Aluno = {NUSP, Nome}
Nome
Disciplina = {Sigla, Nome, No.Créditos}
Professor = {Nome}
Monitora= {NUSP, NomeProf, Sigla, Horário}
Passo 7
▪ Como mapear atributos multivalorados?
Aluno
NUSP
Nro.Ser.Med.
Alergias
Nomes
dos Pais
USP – ICMC – GBDI
265
Atributos Multivalorados
 1a Opção de Mapeamento
Aluno
Aluno = {Nome, NSerMed}
Nome
N.Ser.Med.
Alergias
Alergias = {Nome, Alergia}
Atributos Multivalorados
 2a Opção de Mapeamento
Aluno
NUSP
valores possíveis: nome do pai
nome da mãe
Nome
Nomes Pais
Aluno = {NUSP, Nome, Pai, Mae}
Mapeamento entre Esquemas –
Os 7 Passos do Procedimento
1. Mapear
2. Mapear
3. Mapear
4. Mapear
5. Mapear
6. Mapear
7. Mapear
todos
todos
todos
todos
todos
todos
todos
os
os
os
os
os
os
os
CE
CE Fracas
CR de cardinalidade 1:1
CR de cardinalidade 1:N
CR de cardinalidade N:N
CR de grau maior ou igual a 3
atributos multivalorados
USP – ICMC – GBDI
268
Exercício – mapear para o Modelo
CPF
Relacional
estado
nome
RG
nome
1
Representante
Atua
1
Região
1
Pertence
Contato
N
1
É Feito
N
Cliente
telefones
endereço
nome
CNPJ
1
data
É Feita
Produto
cod
preço
N
Pertence
qtde
N
N
Venda
valor
data
nota
Abstrações

Como mapear Conjuntos de Entidades?
Disciplina
Aluno
Sigla
Nome
Nome
No. Créditos
NUSP
CPF
RG
USP – ICMC – GBDI
270
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
Consulta
Paciente
RG
Nome
N
Atende
Data
Sala
M Médico
CRM
Nome
Mapeamento de Agregação
Caso 1: CE Agregação é identificado por
Noatributo
mapeamento
M-N,
própriotradicional,
+ chaves dos
CEsum
que
mesmo
paciente
poderá consultar o
participam
do CRnão
gerador

mesmo
médico novamente – nem
 uma mesma instância do CR gerador resulta em
mesmo
o retorno.
maispara
de uma
entidade agregada
Consulta
Paciente
RG
Nome
N
Atende
Data
Sala
M Médico
CRM
Nome
Mapeamento de Agregação
Consulta
Paciente
RG
Nome
N
Atende
M
Data
Sala
Médico
CRM
Nome
Médico = {CRM, Nome}
Paciente = {RG, Nome}
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
Professor
NFunc
Nome
N
Orienta
Título
M
AlunoPós
NUSP
Nome
Mapeamento de Agregação

Caso 2a: cada instância do CR gera apenas uma
entidade agregada...
Projeto
Professor
NFunc
Nome
N
Orienta
M
Título
AlunoPós
NUSP
Nome
Aluno = {NUSP, Nome}
Professor = {Nfunc, Nome}
Projeto = {Título, Orientador, Aluno}
Mapeamento de Agregação

Caso 2b: cada instância do CR gera mais de uma
entidade agregada...
Projeto
Professor
NFunc
Nome
N
Orienta
M
Título
AlunoPós
NUSP
Nome
Aluno = {NUSP, Nome}
Professor = {Nfunc, Nome}
Projeto = {Título, Orientador, Aluno}
Mapeamento de Agregação

Caso 2b: cada instância do CR gera mais de uma
entidade agregada...
Esse mapeamento apresentaProjeto
um ganho
Ncom o título doM projeto
Alunosemântico,
como
Professor
Orienta
Pós
chave.
NFunc
Nome
Título
NUSP
Nome
Aluno = {NUSP, Nome}
Professor = {Nfunc, Nome}
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
Consulta
Paciente
RG
Nome
N
Atende
Data
Sala
M Médico
CRM
Nome
NroRegistroConsulta
também identifica
univocamente cada
consulta
Consulta
Paciente
RG
Nome
N
Atende
M Médico
Data
Sala
NroRegistroConsulta
CRM
Nome
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.... Livro
Texto
Aula
Professor
NFunc
Nome
N
Ministra
Data/Horário
Professor = {Nfunc, Nome}
N Disciplina
Sigla
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....
Livro
Texto
Aula
Professor
NFunc
Nome
N
Ministra
N Disciplina
Sigla
Nome
Data/Horário
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.
Mapeamento da Generalizaçã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 - Alternativa 1 (relações diferentes)
Procedimento Padrão 1
Ch
CEG
AG
CEG = { Ch, AtC, AG }
CEE1 = { Ch, Ae1}
...
CEEk = { Ch, Aek}
disjunção
AtC
D
CEE1
Ae1
...
CEEk
Aek
Uma relação geral com um atributo de tipo (AtC)  disjunção.
Mapeamento da Generalização - Alternativa 1
Procedimento Padrão 2
CEG = { Ch, AtC, AG }
CEE1 = { Ch, Ae1}
...
CEEk = { Ch, Aek}
Ch
CEG
AG
AtC
O
CEE1
Ae1
...
sobreposição
CEEk
Aek
A relação geral não possui atributo de tipo  sobreposição.
Mapeamento da Generalização - Alternativa 1
Procedimento Padrão 3
CEG = { Ch, AG }
CEE1 = { Ch, Ae1}
...
CEEk = { Ch, Aek}
CEC={ Ch, AtC}
Ch
CEG
AG
AtC
O
CEE1
Ae1
...
sobreposição
CEEk
Aek
Uma terceira relação – CEC – que indica a qual tipo de entidade
uma dada entidade se refere (neste caso, sobreposição).
Mapeamento da Generalização - Alternativa 2 (única relação)
Procedimento Padrão 4
CEG = { Ch, AtC, AG, Ae1, ... Aek }
Ch
CEG
AG
AtC
D
CEE1
Ae1
...
disjunção
CEEk
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 }
Ch
sobreposição
CEG
AtC
AG
O
CEE1
Ae1
...
CEEk
Aek
Uma única tabela com todos os possíveis atributos de todas as
possíveis entidades, sem atributo de tipo  sobreposição.
Mapeamento da Generalização - Alternativa 2
Procedimento Padrão 6
CEG = { Ch, AG, Ae1,... Aek, BCEE1, .... BCEEk}
Ch
CEG
AG
AtC
O
CEE1
Ae1
...
sobreposição
CEEk
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.
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 }
Ch
participação total
CEG
AG
AtC
CEE1
Ae1
...
Cada relação com seus
atributos
gerais
e
específicos.
CEEk
Aek
Sobreposição – uma dada
entidade pode ser várias
ao mesmo tempo.
Mapeamento da Generalização - Alternativa 3
Procedimento Padrão 8
CEEk = { Ch, AG, AEk }
CEC={ Ch, AtC}
Ch
participação total
CEG
AG
AtC
D
CEE1
Ae1
...
CEEk
Aek
Cada relação com seus
atributos
gerais
e
específicos.
E outra que indica de
qual tipo é cada instância
 disjunção.
Mapeamento da Generalização - Alternativa 3
Procedimento Padrão 9
CEEk = { Ch, AG, AEk }
CEC={ Ch, AtC}
Ch
AG
participação total
CEG
AtC
O
CEE1
Ae1
...
CEEk
Aek
Cada relação com seus
atributos
gerais
e
específicos.
E outra que indica de
qual tipo é cada instância
 sobreposição.
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}
Download