Você está na página 1de 60

Banco de Dados

Modelagem Conceitual
Vtor E. Silva Souza
(vitorsouza@inf.ufes.br)
http://www.inf.ufes.br/~ vitorsouza
Departamento de Informtica
Centro Tecnolgico
Universidade Federal do Esprito Santo

Licena para uso e distribuio


Este obra est licenciada com uma licena Crea8ve
Commons Atribuio-Compar8lhaIgual 4.0 Internacional;
You are free to (for any purpose, even commercially):
Share: copy and redistribute the material in any
medium or format;
Adapt: remix, transform, and build upon the material;
Under the following terms:
AOribu8on: you must give appropriate credit, provide a link to
the license, and indicate if changes were made. You may do
so in any reasonable manner, but not in any way that suggests
the licensor endorses you or your use;
ShareAlike: if you remix, transform, or build upon the
material, you must distribute your contribu8ons under the
same license as the original.
Mais informaes podem ser encontradas em:
http://creativecommons.org/licenses/by-sa/4.0/
Maio 2014

Banco de Dados - Modelagem Conceitual

Crditos
Algumas informaes foram re8radas e adaptadas dos
slides do livro Projeto de Banco de Dados de Carlos A
Heuser;

Maio 2014

Banco de Dados - Modelagem Conceitual

Modelos
Maneira de projetar, comunicar, documentar, etc.
solues computacionais;
Diversos nveis, por exemplo:
Ontologias (modelos genricos, de domnio);
Requisitos (foco em um problema);
Projeto / arquitetura (foco em uma soluo).
Essenciais para o desenvolvimento
de soaware;
Assim como o desenvolvimento,
tambm seguem os paradigmas
(estruturado, OO, etc.).
Maio 2014

Banco de Dados - Modelagem Conceitual

Desenvolvimento de sistemas
Uma biblioteca: livros, autores,
usurios, funcionrios, ...

Descrio da
soluo

Validao

Verificao

Descrio do
problema
Correteza

Correspondncia

Problema

Ttulo CHAR, nmero de


pginas INT, ...

Estruturas da ling. program.


Tabelas do banco de dados

Sistema
Maio 2014

Livros possuem ttulo, autor,


nmero de pginas, ...

Banco de Dados - Modelagem Conceitual

Projeto do banco de dados


Requisitos
do sistema

Modelo
conceitual

Modelo
lgico

Projeto
fsico

Quais os elementos de
informao devero
fazer parte do banco de
dados?

Quais as funes desejadas no


sistema de informao do qual
o banco de dados faz parte?

Como estes elementos sero


armazenados em um SGBD
especfico?

Comear de um nvel de abstrao mais alto


ajuda a comunicao com especialistas de
domnio, a encontrar problemas mais cedo, etc.
Maio 2014

Banco de Dados - Modelagem Conceitual

Tcnicas para modelagem conceitual


Abordagem En8dade-Relacionamento (ER):
Criada em 1976, por Peter Chen;
Mais difundida e u8lizada no paradigma estruturado;
Serviu de base para proposta subsequentes;
A Linguagem de Modelagem Unicada (UML):
Juno de OMT (Rumbaugh), Booch e OOSE
(Jacobson), criada na Ra8onal Soaware em 1997;
Padro ISO (2000) man8do pela OMG;
No exclusiva para modelagem conceitual;
Mais difundida e u8lizada no paradigma orientado a
objetos.
Maio 2014

Banco de Dados - Modelagem Conceitual

Diagramas da UML

de Casos de Uso;
de Classes;
de Objetos;
de Estrutura Composta;
de Sequncia;
de Comunicao;
de Estados;
de A8vidades;
de Componentes;

Maio 2014

de Implantao;
de Pacotes;
de Interface Geral;
de Tempo.

Banco de Dados - Modelagem Conceitual

A abordagem En8dade-Relacionamento
Conceitos centrais:
En8dade;
Relacionamento;
Diagrama entidade-relacionamento
Atributo;
Generalizao / especializao;
Diagrama ER
En8dade associa8va.
preo
n

Produto

descrio
cdigo
Maio 2014

Tipo de
produto
descrio
cdigo

Banco de Dados - Modelagem Conceitual

En8dade: conceito
Conjunto de objetos da realidade modelada sobre os
quais deseja-se manter informaes no banco de
dados;
Exemplos:
Em um sistema de informaes industriais: produtos,
8pos de produtos, vendas, compras, etc.;
Em um sistema de contas correntes: clientes, contas
correntes, cheques, agncias, etc.;
Em um sistema de marcao de reunies:
funcionrios, salas, reunies, agendamentos, etc.

Maio 2014

Banco de Dados - Modelagem Conceitual

10

Entidade
representao
En8dade:
representao

diagram

Podem representar objetos da realidade, sejam eles:


Concretos
(ex.: pessoa,
automvel);
Representada
atravs
de um
retngulo.ou
Abstratos (ex.: departamento, endereo);
Representada no diagrama ER com um retngulo com o
nome da en8dade:

PESSOA


A en8dade (conceito) estabelece um conjunto de
en8dades ou classe de objetos;
Os elementos desse conjunto so chamados de
instncias, ocorrncias ou objetos.
Maio 2014

Banco de Dados - Modelagem Conceitual

11

En8dade: propriedades
A en8dade sozinha pouco informa;
Precisamos saber suas propriedades;
Em um modelo ER, so representadas por:
Relacionamentos;
Atributos;
Generalizaes / especializaes.

Maio 2014

Banco de Dados - Modelagem Conceitual

12

Relacionamento: conceito e representao


Relacionamento
representao
Conjunto
de associaes
entre en8dades grfica
sobre as quais
deseja-se manter informaes na base de dados;
Cada instncia uma ligao especca entre
determinadas instncias de en8dade;

DEPARTAMENTO

LOTAO

EMPREGADO

Relacionamento

Maio 2014

Banco de Dados - Modelagem Conceitual

13

Diagrama de ocorrncias
p1

p4
p2

p1,d1

d1
Maio 2014

p7
p6

p2,d1 p4,d2

d2

p8
p5

p5,d3

d3

entidade
EMPREGADO

relacionamento
LOTAO

entidade
DEPARTAMENTO

Banco de Dados - Modelagem Conceitual

Carlos A. Heuser

p3

14

Auto-relacionamento

PESSOA

marido

esposa

CASAMENTO

Maio 2014

Banco de Dados - Modelagem Conceitual

Carlos A. Heuser

Papis

15

Auto-relacionamento
diagrama
de ocorrncias
Auto-relacionamento:
diag.
de ocorrncias
p3

p7

p1
p2

esposa

marido

p8

p6

PESSOA

p4

p5

marido

marido

esposa

esposa

p1,p3
p6,p8
Carlos A. Heuser
Maio 2014

Banco de Dados - Modelagem Conceitual

Carlos A. Heuser

CASAMENTO

16

24

Cardinalidade
Nmero de ocorrncias de uma en8dade que podem
estar associadas atravs de um relacionamento;
Cardinalidade
mxima
no
DERentre
Em bancos
de dados simples,
no se d
is8ngue
valores > 1, representando-os simplesmente como n:
1-1 (um para um);
Relacionamentos
1-N (um para muitos);
binrios
N-N (muitos para muitos).

LOTAO

DEPARTAMENTO
1
Maio 2014

Banco de Dados - Modelagem Conceitual

EMPREGADO
17

Cardinalidade: exemplos
ALUNO

ENGENHEIRO

EMPREGADO

INSCRIO

ALOCAO

ALOCAO

CURSO

PROJETO

MESA

Carlos A. Heuser
Maio 2014

Banco de Dados - Modelagem Conceitual

18

Cardinalidade: exemplos
Relacionamentos
1:1

Relacionamentos
n:n
EMPREGADO
supervisor supervisionado
1
n
SUPERVISO

1
marido

A. Heuser

1
esposa

CASAMENTO

Maio 2014

composto
n

componente
n
COMPOSIO

Banco de Dados - Modelagem Conceitual

Carlos A. Heuser

PRODUTO

PESSOA

19

Relacionamento ternrio
DISTRIBUIDOR

CIDADE

Para cada par


(cidade, produto)
h 1 distribuidor.

PRODUTO
Maio 2014

Banco de Dados - Modelagem Conceitual

Carlos A. Heuser

DISTRIBUIO

20

Cardinalidade mnima
Nmero mnimo de ocorrncias de en8dade que so
associadas a uma ocorrncia de uma en8dade atravs
de um relacionamento;
Em bancos de dados simples, so consideradas apenas
2 cardinalidades mnimas:
0 (zero): associao opcional;
1 (um): associao obrigatria.

Maio 2014

Banco de Dados - Modelagem Conceitual

21

Cardinalidade mnima
e1

e3

EMPREGADO

e4

e2

(0,1)
e1,m1

ALOCAO

e3,m6

e4,m4

(1,1)
MESA

m4

m1
m2

Maio 2014

m3

Banco de Dados - Modelagem Conceitual

m5

m6

Carlos A. Heuser

e2,m2

22

Exemplo
PR-REQUIS
liberada

liberadora

(0,n)
DEPARTAMENTO

RESPONSVEL
(0,n)
(1,1)

(0,n)
DISCIPLINA
(0,n)

DISC-CURSO

(0,n)
ALUNO

(0,n)

INSCRIO

(1,1)

CURSO

Carlos A. Heuser
Maio 2014

Banco de Dados - Modelagem Conceitual

23

Atributo

Atributo
Dado ou informao que associado a cada
ocorrncia
(instncia) de uma en8dade ou de um relacionamento;
Atributo
com cardinalidade
Dado ou informao que associad
Cardinalidades:
ocorrncia de uma entidade ou
Mnima: 0 (opcional) ou 1 (obrigatrio);
relacionamento
Mxima: 1 (mono-valorado) ou n (mul8valorado).
PROJETO

CLIENTE
telefone (0,n)
cdigo
nome
Maio 2014

atributo
obrigatrio
Banco de Dados - Modelagem Conceitual

tipo
cdigo
nome
24

Atributo em relacionamento
Atributo
ENGENHEIRO
Cdigo

(1,n)

(0,n)

em relacionamento
1:n
ATUAO

Nome

Funo

PROJETO

Cdigo Ttulo

(0,1)
FINANCEIRA

(0,n)
FINANCIAMENTO
taxa de juros

A. Heuser
Maio 2014

Banco de Dados - Modelagem Conceitual

VENDA

Carlos A. Heuser

n de parcelas

25

Atributo iden8cador da en8dade

Atributo identificador
Conjunto de propriedades (atributos, relacionamentos)
Atributo
identificador
de uma en8dade
cujos valores servem para dis8nguir
uma ocorrncia (instncia) da en8dade das demais;
Cada en8dade deve ter um iden8cador;
cdigo
nome
PESSOA
cdigo
endereo
nome
PESSOA
endereo

capacidade
nmero do corredor
PRATELEIRA
capacidade nmero da prateleira
nmero do corredor
PRATELEIRA
daConceitual
prateleira
Maio 2014
Banco dnmero
e Dados - Modelagem
26

Relacion. iden8cador / en8dade fraca

nome

EMPREGADO

(1,1)

(0,n)

DEPENDENTE

entidade fraca
Relacionamento
identificador

Heuser
Maio 2014

Banco de Dados - Modelagem Conceitual

Entidade
fraca

Carlos A. Heuser

cdigo

nmero de
seqncia nome

27

elacionamento identificador (recurso)


Recurso do relacionamento iden8cador
GRUPO

cdigo

(1,1)

EMPRESA

nmero da
empresa

(1,1)

(0,n)

FILIAL
Maio 2014

nmero da
filial
Banco de Dados - Modelagem Conceitual

cdigo +
nmero da
empresa +
nmero da
filial
60

Carlos A. Heuser

(0,n)

cdigo +
nmero da
empresa

28

Relacionamento com atributo iden8cador

MDICO

(1,n)

CONSULTA

(0,n)

PACIENTE

Duas instncias de consulta


(par mdico-paciente) se
distinguem pela data/hora
da consulta.

Heuser

Maio 2014

Banco de Dados - Modelagem Conceitual

Carlos A. Heuser

data/hora

29

Generalizao / especializao
Permite Generalizao/especializao
atribuir propriedades par8culares a um
subconjunto das ocorrncias (especializadas) de uma
en8dade genrica:
(1,1)

(0,n)

FILIAL

nome
cdigo

CLIENTE

Smbolo da
generalizao /
especializao
Entidade
especializada
(herda
propriedades)
Maio 2014

Entidade
genrica
PESSOA
FSICA
CIC

sexo

Banco de Dados - Modelagem Conceitual

PESSOA
JURDICA
CGC

tipo de
organizao

30

Estruturado ou orientado a objetos?


Estruturado:
Modelo entrada processamento sada;
Dados separados das funes;
Visto na disciplina de PBC.
Orientado a Objetos (OO):
O mundo composto por objetos;
Objetos combinam dados e funes;
Conceitos do problema so modelados como objetos
que so associados e interagem entre si.

Maio 2014

Banco de Dados - Modelagem Conceitual

31

Estruturado ou orientado a objetos?


No estruturado, o gap semn8co maior, o que
frequentemente gera sistemas divceis de manter:
As funes tem que conhecer a estrutura dos dados;
Mudanas na estrutura dos dados acarreta alterao
em todas as funes relacionadas.
O paradigma orientado a objetos vem subs8tuindo-o:
Melhoria da interao analistas x especialistas;
Apoio reu8lizao, extenso, legibilidade;
O mundo composto por objetos...
Importncia da consistncia entre os modelos.
Maio 2014

Banco de Dados - Modelagem Conceitual

32

Conceitos OO: abstrao


Modelos mentais: viso simplicada do mundo
construda por cada um em cada situao;
Abstrair consiste em ignorar aspectos irrelevantes e
concentrar nos principais.

Maio 2014

Banco de Dados - Modelagem Conceitual

33

Conceitos OO: encapsulamento


Separar os aspectos externos (o que faz) dos aspectos
internos (como faz):
Aspectos externos = interface, contrato;
Aspectos internos = implementao.

Maio 2014

Banco de Dados - Modelagem Conceitual

34

Conceitos OO: modularidade


Decomposio do sistema em mdulos:
Coesos (baixo acoplamento);
Autnomos;
De interface simples e coerente.
Fundamental para o reuso e extenso.

Maio 2014

Banco de Dados - Modelagem Conceitual

35

Conceitos OO: hierarquia


uma forma de arrumar as abstraes e simplicar o
entendimento do problema;
Tambm promovem o reuso;
Sinergia para administrar a complexidade:
Abstrao auxilia a iden8car os conceitos relevantes
do mundo real;
Encapsulamento oculta a viso interna das
abstraes iden8cadas;
Modularidade nos d um meio de agrupar
logicamente abstraes relacionadas;
Por m, abstraes formam hierarquias.
Maio 2014

Banco de Dados - Modelagem Conceitual

36

Conceitos OO: objetos


Um objeto uma en8dade que incorpora uma
abstrao relevante no contexto de uma aplicao;
Podem ser coisas abstratas (ex.: uma reserva de
passagem area) ou concretas (ex.: um documento).

Maio 2014

Banco de Dados - Modelagem Conceitual

37

Conceitos OO: classes


Uma classe descreve um conjunto de objetos com as
mesmas propriedades, o mesmo comportamento, os
mesmos relacionamentos com outros objetos e a
mesma semn8ca;
Similar ao conceito de 8po.
Casa
"
"
"
"
"

Maio 2014

Cor;
#
Nmero;
Abrir Porta;
Fechar Porta;
Arquiteto.

15

Banco de Dados - Modelagem Conceitual

45

70

38

Conceitos OO: classes e instncias


Objeto = Instncia de classe;
Paradigma OO norteia o desenvolvimento por meio de
classicao de objetos:
Modelamos classes, e no objetos;
Objetos so en8dades reais executam algum papel
no sistema;
Classes so abstraes capturam a estrutura e
comportamento comum a um conjunto de objetos.

Maio 2014

Banco de Dados - Modelagem Conceitual

39

Mecanismos de estruturao OO
Objetos relacionam-se uns com os outros;
preciso modelar esta complexidade e estruturar as
classes;
Mecanismos propostos:
Associao;
Composio;
Herana.

Maio 2014

Banco de Dados - Modelagem Conceitual

40

Conceitos OO: ligaes e associaes


Ligao: conexo entre objetos;
Associao: conexo entre classes que representa a
existncia de ligaes;
Uma associao descreve um conjunto de potenciais
ligaes da mesma maneira que uma classe descreve
um conjunto de potenciais objetos [Rumbaugh].

Co de Guarda

Habitantes

Classe: Pessoa
Maio 2014

Classe: Casa
Banco de Dados - Modelagem Conceitual

41

Classe: Cachorro
41

Conceitos OO: herana


Generalizao: quando
classes tm semelhanas
podemos denir uma
classe mais geral;
Especializao: muitas
vezes um conceito pode
ser renado, adicionando-
se novas caracters8cas.

Maio 2014

Estudante
Nome

Universitario

EstudanteEnsinoMedio

Matrcula

Srie

EstudanteGraduacao

EstudanteMestrado

Curso

Orientador

Banco de Dados - Modelagem Conceitual

42

O diagrama de classes da UML


Classe
Abstrata
Classe
Associativa

Herana

Nome
Atributos
Operaes

Associao (e
suas cardinalidades)
Agregao
Classe

Representa as classes relevantes (abstrao!) para


o domnio,
problema ou soluo.
Maio 2014
Banco de Dados - Modelagem Conceitual

43

Representao de classes
Representao
em UML
Nome da Classe
<Lista de atributos>
<Lista de operaes>

Se estiver em itlico, a classe abstrata.


Sintaxe: <escopo> <nome> : <tipo> =
<valor default>
Escopo:
- privado
+ pblico
# protegido
Sintaxe: <escopo> <nome> (<parmetros>) :
<tipo>
<parmetros> = lista de pares <nome> :
<tipo>, separada por vrgula.

Dependendo do nvel de abstrao, alguns detalhes podem ser


omitidos (ex.: tipo e escopo na fase de anlise).
Maio 2014

Banco de Dados - Modelagem Conceitual

44

Herana (inheritance)

Maio 2014

Generalizao

Especializao

Devem modelar relaes -um-8po-de;


Subclasses devem suportar toda a funcionalidade das
superclasses e possivelmente mais;
Funcionalidade comum a diversas classes deve estar o
mais alto possvel na hierarquia;
Classes abstratas no podem herdar de classes
concretas.

Banco de Dados - Modelagem Conceitual

45

Separao em subsistemas / mdulos


Projetos grandes podem conter centenas de classes e
estruturas diversas;
Diviso das classes em pacotes:
Coleo de classes que colaboram entre si;
Conjunto coeso de responsabilidades;
Caixa preta.
Vantagens:
Facilita o entendimento para leitores;
Auxilia na organizao de grupos de trabalho;
Organiza a documentao;
Em suma, facilita a manuteno.
Maio 2014

Banco de Dados - Modelagem Conceitual

46

Pacotes (packages)
Podem ser usados para organizar diversos 8pos de
elementos de modelos, inclusive diagramas inteiros;
Muito u8lizados para organizar classes em mdulos, da
mesma forma que ser feito em Java/C++;
possvel representar relao de dependncia entre
pacotes:

Maio 2014

Banco de Dados - Modelagem Conceitual

47

Associaes (associa8ons)
Relacionamento entre classes representado por
associaes, agregaes e composies;
Associaes podem indicar cardinalidade (cardinality):
Objetos da ClasseA podem se
relacionar com no mnimo zero e no
mximo trs objetos da ClasseB.

Um e somente um.

Maio 2014

Nenhum, um, ou vrios.

Banco de Dados - Modelagem Conceitual

48

Papis (roles)
Indicam o papel que a classe desempenha na
associao (so usados substan8vos);
opcional, usado quando melhora o entendimento do
modelo;
Sintaxe: <escopo> <nome>.

Maio 2014

Banco de Dados - Modelagem Conceitual

49

Classes associa8vas (associa8on class)


U8lizadas quando a associao possui atributos;
Comuns em relaes n-para-n.

Maio 2014

Banco de Dados - Modelagem Conceitual

50

Relacionamentos recursivos
Perfeitamente legais;
Geralmente pedem denio de papis.

Maio 2014

Banco de Dados - Modelagem Conceitual

51

Associaes n-rias
Associaes entre trs ou mais classes;
Extremamente raras, muitas vezes as ferramentas CASE
nem do suporte;
Podem ser subs8tudas por uma nova classe e N
associaes.

Maio 2014

Banco de Dados - Modelagem Conceitual

52

Agregao e composio
Representam associaes todo-parte;
Adicionam um losango sintaxe, na extremidade da
classe que representa o todo:

Maio 2014

Banco de Dados - Modelagem Conceitual

53

Atributos (aOributes)
Atributos so informaes de estado (propriedades)
para o qual cada objeto em uma classe tem seu valor;
Muito similares s associaes:
Como atributos tm um 8po, podemos considerar
que so associaes com um 8po;
Para 8pos primi8vos denimos atributos, do
contrrio modelamos uma associao;
Em l8ma instncia, associaes e atributos so
implementados da mesma forma;
Atributos e associaes denem uma classe.

Maio 2014

Banco de Dados - Modelagem Conceitual

54

Especicao de atributos
Escolha um nome com signicado;
Siga um padro de nomenclatura;
Inclua-o na modelagem de classes:

Maio 2014

Banco de Dados - Modelagem Conceitual

55

Atributos e hierarquias de classe


Ateno hierarquias de classes:
Atributos genricos cam mais acima na hierarquia;
Por outro lado, se ele no se aplica a algumas
subclasses, deve ser trazido para baixo, somente
para as classes apropriadas.
Reviso da hierarquia:
Descoberta de atributos nos leva a um melhor
entendimento, o que possivelmente implicar
reviso de hierarquias.

Maio 2014

Banco de Dados - Modelagem Conceitual

56

O modelo conceitual
Representa os elementos do mundo real;
Desconsidera preocupaes tecnolgicas (ex.: 8pos dos
dados):

Maio 2014

Banco de Dados - Modelagem Conceitual

57

Dos casos de uso ao modelo conceitual

Maio 2014

Banco de Dados - Modelagem Conceitual

58

Dos casos de uso ao modelo conceitual

Maio 2014

Banco de Dados - Modelagem Conceitual

59

h*p://nemo.inf.ufes.br/

Maio 2014

Banco de Dados - Modelagem Conceitual

60

Você também pode gostar