1
Modelagem ConceitualOrientada a Objetos
Fernanda BaiãoUNIRIO
Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Vieira e Maria Cláudia Cavalcanti
2
Classes e Tipos
Classe: conjunto de objetos descritos pelo mesmo conjunto de propriedades.Tipo: conjunto de propriedades que descreve os objetos de uma classe.
Os objetos da classe Empregado podem ser representados por diferentes tipos, isto é, por diferentes conjuntos de propriedades:
Tipo 1: (Matrícula, Nome, Endereço)Tipo 2: (CPF, Nome, Endereço, Telefone, Lotação)
3
Classe x Tipo x Instância ...
o tipoMulher
Nome
duas instânciasda classe
Mulher
M. Esteves20
S. Paulo
L. Rocha16Rio de Janeiro
Idade
Cidade
A Classe Mulher
4
Mecanismo de AbstraçãoProcesso mental que seleciona algumas propriedades de um conjunto de objetos e exclui outras irrelevantes em um dado contexto. Def. do Michaelis: Velocípede de
duas rodas iguais, movido a pedal .
a figura de uma bibicleta é uma representação dessa abstração ! O texto com uma definição de dicionário também é.
o conceito de bicicleta
5
Abstração por ClassificaçãoDefine um conceito abstrato (CLASSE), a partir de uma coleção de OBJETOS do mundo real, caracterizados por propriedades comuns.Estabelece um relacionamento “é membro de”, entre a classe e seus objetos.
o conceito de bicicleta define a classe cujos membros compartilham uma série de propriedades comuns a todas as bicicletas do universo.
o conceito de bicicleta define a classe cujos membros compartilham uma série de propriedades comuns a todas as bicicletas do universo.
6
Abstração por Classificação
Por exemplo: definida a classe BICICLETA através do mecanismo de abstração por classificação, pode-se dizer que
a bicicleta vermelha da Bia, a bicicleta verde do Dudu e a bicicleta azul da Lulu são membros desta classe.
BICICLETA
É membro de
7
Diferentes Classificações de um Objeto
Mesa preta Mesa amarela Cadeira preta Cadeira amarela
MOBÍLIA AMARELAMOBÍLIA PRETA
MESA CADEIRA
8
Abstração por AgregaçãoDefine uma nova classe a partir de um conjunto de outras classes que representam suas partes componentes.
objetos são agregações de objetos de outras classesOs objetos incluídos em uma agregação representam as partes componentes do objeto da nova classe.Estabelece um relacionamento “é parte de” entre a nova classe e seus membros.
a classe bicicleta pode ser definida através do conjunto de componentes roda , pedal e guidon
a classe bicicleta pode ser definida através do conjunto de componentes roda , pedal e guidon
9
Exemplo
...
BICICLETA
RODA PEDAL GUIDON
...
é_membro_de
é_membro_de
é_parte_de
10
Abstração por Agregação
BICICLETABICICLETA
GUIDONRODA PEDAL
As classes RODA, PEDAL e GUIDON são partes da classe BICICLETA
Os objetos das classes RODA, PEDAL e GUIDON podem ser compartilhados?
Se um objeto bicicleta é formado por uma roda, um pedal e um guidon, podemos dizer que temos uma bicicleta?
é_parte_de
11
Abstração por GeneralizaçãoDefine uma nova classe, a partir da abstração das diferenças entre os objetos de duas ou mais classes.
cada classe participante é um subconjunto da nova classe.As propriedades da classe mais genérica são compartilhadas pelas classes mais específicas
a classe veículo é uma generalização das classes bicicleta e carro..
a classe veículo é uma generalização das classes bicicleta e carro..
a classe pessoa é uma generalização das classes homem e mulher.a classe pessoa é uma generalização das classes homem e mulher.
12
Cobertura de Generalizações
ESTUDANTE
MULHERHOMEMBICICLETA
AUTOMÓVEL
JOGADORDE TÊNIS
JOGADORDE FUTEBOL
total, exclusiva (t,e)
parcial, inclusiva (p,i)
parcial, exclusiva (p,e)
total, inclusiva (t,i)ESPORTISTAS DO CLUBE
PESSOA VEÍCULO
MESTRADO GRADUAÇÃO
13
Mais exemplos de Parcial inclusiva...
PROFESSOR ENGENHEIRO
PROFISSÕES ou PROFISSIONAIS?
ALUNOSCOMP.
ALUNOSHOMENS
ALUNOS DA UNIVERSIDADEPOR CURSO OU POR SEXO?
14
Associação Binária ...estabelece um mapeamento entre os elementos de duas classes.
utiliza é uma associação binária entre as classes pessoa e apartamento.possui é uma outra associação binária entre as classes pessoa e apartamento.dirige é uma associação binária entre as classes pessoa e automóvel.
15
Associação BináriaUTILIZA
PESSOA
POSSUI
APARTAMENTO
p1
p2
p3
a1
a2
a3
a4
p1
p2
p3
a1
a2
a3
a4
PESSOA APARTAMENTO PESSOA APARTAMENTO
utiliza possui
16
CardinalidadeSeja a associação binária A entre as classes C1 e C2:
a cardinalidade mínima de C1/C2 em A é definida como o número mínimo de mapeamentos nos quais cada elemento de C1/C2 pode participar.
a cardinalidade máxima de C1/C2 em A é definida como o número máximo de mapeamentos nos quais cada elemento de C1/C2 pode participar.
17
Cardinalidade Mínima
se assumirmos que cada pessoa utiliza pelo menos um apartamento:min-card (pessoa, utiliza) = 1.
se assumirmos que alguns apartamentos podem não ser habitados:min-card (apartamento, utiliza) = 0.
se assumirmos que todo apartamento tem pelo menos um proprietário:min-card (apartamento, possui) = 1.
se assumirmos que algumas pessoas não possuem apartamentos:min-card (pessoa, possui) = 0.
p1
p2
p3
a1
a2
a3
a4
PESSOA APARTAMENTO
utiliza
p1
p2
p3
a1
a2
a3
a4
PESSOA APARTAMENTO
possui
18
Cardinalidade Máximase assumirmos que uma pessoa pode utilizar vários apartamentos:max-card (pessoa, utiliza) = n.
se assumirmos que um apartamento pode ter vários habitantes:max-card (apartamento, utiliza) = n.
se assumirmos que uma pessoa pode possuir vários apartamentos:max-card (pessoa, possui) = n.
se assumirmos que um apartamento só pode ter um único proprietário:max-card (apartamento, possui) = 1.
p1
p2
p3
a1
a2
a3
a4
PESSOA APARTAMENTO
utiliza
p1
p2
p3
a1
a2
a3
a4
PESSOA APARTAMENTO
possui
19
Cardinalidade Máxima
max-card (C1, A) = 1
max-card (C2, A) = 1
max-card (C2, A) = n
max-card (C1, A) = n
A
C1 C2
um-para-um
muitos-para-um
um-para-muitos
muitos-para-muitos
C1C2
20
Cardinalidade
um-para-um
C1 C2
um-para-muitos
C1 C2
muitos-para-um
C1 C2
muitos-para-muitos
C1 C2
1:1 1:n
m:1 m:n
21
Associação n-ária ...estabelece um mapeamento entre os elementos de três ou mais classes.
SESSÃO
DISCIPLINA SALADIA
sessão é uma associação ternária entre as classes disciplina, dia e sala.
22
Cardinalidade
Seja a associação n-ária A entre as classesC1, C2, …, Cn :
a cardinalidade mínima de Ci em A é definida como o número mínimo de mapeamentos nos quais cada elemento de Ci pode participar.
a cardinalidade máxima de Ci em A é definida como o número máximo de mapeamentos nos quais cada elemento de Ci pode participar.
23
Cardinalidadese assumirmos que cada dia da semana pode ter nenhuma ou muitas sessões de aula:min-card (dia, sessão) = 0max-card (dia, sessão) = ncard (dia, sessão) = (0, n)
se assumirmos que cada disciplina pode ter de uma a três sessões por semana:card (disciplina, sessão) = (1, 3)
se assumirmos que cada sala de aula comporta no máximo 40 sessões por semana:
card (sala, sessão) = (0, 40)
24
Associação n-áriaFEN110
FEN300
D501
D530
SEGTERQUAQUISEX
DISCIPLINASALA
DIA
(1,3)
(0,n)
(0,40)
25
Modelagem Conceitual e a Representação de Conhecimento
Objetivo das técnicas de RCDesenvolver conceitos para a modelagem mais precisa de um domínio de conhecimento• Classificação• Identificação• Especialização e Generalização• Agregação e Associação
Criação de uma ontologia
26
Ontologia“Descrição das estruturas e dos
relacionamentos que são possíveis na realidade, por meio de algum vocabulário comum”
“Meio para descrever o conhecimento de uma certa comunidade sobre a realidade”
27
Ontologia“A especificação de uma
conceitualização”Conceitualização
Conjunto de conceitos utilizados para representar a realidade
EspecificaçãoLinguagem e termos do vocabulário
28
OntologiaTécnicas possíveis para especificação [Elmasri, Navathe]
ThesaurusTaxonomiaEsquema de banco de dadosTeoria lógica
29
ExercícioDiscuta qual o papel das ontologias na modelagem conceitual de dados
30
Projeto de Banco de Dados
PROJETO FÍSICO
Mundo real
COLETA E ANÁLISE DAS NECESSIDADES
Requisitos do Banco de Dados
Esquema Conceitual
Esquema Lógico
Esquema Interno
Independentedo SGBD
Dependentedo SGBD
PROJETO LÓGICO
PROJETO CONCEITUAL
31
Projeto ConceitualFoco nos dados e em seus inter-relacionamentos.Independente do SGBD utilizado.Produz um esquema mais estável do que o esquema lógico.Mais fácil de ser entendido pelos usuários. Livre de considerações de eficiência e armazenamento.
32
Projeto LógicoFoco nos dados e em seus interrelacionamentos, mas ....Sujeito às restrições do SGBD utilizado.Produz um esquema sujeito a eventuais reestruturações, para garantir a eficiência das consultas.Fácil de ser entendido pelos usuários.
33
Projeto FísicoFoco nos requisitos de desempenho:
tempo de resposta: p.ex., 95% das transações devem ser processadas em até 2 segundos.throughput: número médio de transações/segundo.utilização de espaço.
Define estruturas de armazenamento e caminhos de acesso.
34
Refs BibliográficasConceptual Database Design
Batini, Ceri e NavatheBenjamin/Cummings Pub. Co.
35
Artigo para discussãoGonzalo Génova, Juan Llorens, Paloma Martínez, “Semantics of the Minimum Multiplicity in Ternary Associations in UML”, Proceedings of the 4th International Conference on The Unified Modeling Language, Modeling Languages, Concepts, and Tools, 2001. Lecture Notes In Computer Science 2185, pp. 329 - 341
http://www.lsi.upc.edu/~xpi/material/SemanticsOfMinimumMutiplicity.pdf