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 2
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 3


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 4


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

Validao
Descrio do
Correspondncia

Livros possuem ttulo, autor,


problema nmero de pginas, ...

Verificao
Correteza

Descrio da Ttulo CHAR, nmero de


soluo pginas INT, ...

Estruturas da ling. program.


Sistema Tabelas do banco de dados

Maio 2014 Banco de Dados - Modelagem Conceitual 5


Projeto do banco de dados

Requisitos Modelo Modelo Projeto


do sistema conceitual lgico fsico

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

Como estes elementos sero


Quais as funes desejadas no armazenados em um SGBD
sistema de informao do qual especfico?
o banco de dados faz parte?

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 6
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 7
Diagramas da UML
de Casos de Uso; de Implantao;
de Classes; de Pacotes;
de Objetos; de Interface Geral;
de Estrutura Composta; de Tempo.
de Sequncia;
de Comunicao;
de Estados;
de A8vidades;
de Componentes;

Maio 2014 Banco de Dados - Modelagem Conceitual 8


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

preo
n 1
Produto Tipo de
produto
descrio descrio
cdigo
cdigo
Maio 2014 Banco de Dados - Modelagem Conceitual 9
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
En8dade: representao
representao diagram
Podem representar objetos da realidade, sejam eles:
Concretos
Representada (ex.: pessoa,
atravs de um automvel);
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
Conjunto representao
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
p3
p7
p1 p8 entidade
p4
p2 p6 p5 EMPREGADO

relacionamento
p1,d1 p2,d1 p4,d2 p5,d3 LOTAO

Carlos A. Heuser
d1 d2 d3
entidade
DEPARTAMENTO
Maio 2014 Banco de Dados - Modelagem Conceitual 14
Auto-relacionamento

Papis
PESSOA

marido esposa

Carlos A. Heuser
CASAMENTO

Maio 2014 Banco de Dados - Modelagem Conceitual 15


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

p3 p7
p1
p8
PESSOA p6
p2 p4 p5

marido
marido
marido esposa esposa
esposa
CASAMENTO

Carlos A. Heuser
p1,p3

p6,p8

Carlos A. Heuser 24

Maio 2014 Banco de Dados - Modelagem Conceitual 16


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

DEPARTAMENTO LOTAO EMPREGADO


1 n
Maio 2014 Banco de Dados - Modelagem Conceitual 17
Cardinalidade: exemplos

n 1
ALUNO INSCRIO CURSO

n n
ENGENHEIRO ALOCAO PROJETO

1 1
EMPREGADO ALOCAO MESA

Carlos A. Heuser
Maio 2014 Banco de Dados - Modelagem Conceitual 18
Cardinalidade: exemplos
Relacionamentos 1:1
Relacionamentos
EMPREGADO
n:n

supervisor supervisionado
1 n
SUPERVISO

PESSOA PRODUTO

Carlos A. Heuser
1 1 composto componente
marido esposa n n
A. Heuser
CASAMENTO COMPOSIO

Maio 2014 Banco de Dados - Modelagem Conceitual 19


Relacionamento ternrio
CIDADE DISTRIBUIDOR

n 1
DISTRIBUIO

n Para cada par

Carlos A. Heuser
(cidade, produto)
h 1 distribuidor.
PRODUTO
Maio 2014 Banco de Dados - Modelagem Conceitual 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)

ALOCAO e1,m1 e3,m6 e4,m4


e2,m2

Carlos A. Heuser
(1,1)

m1 m4 m6
MESA
m3
m2 m5
Maio 2014 Banco de Dados - Modelagem Conceitual 22
Exemplo

PR-REQUIS

liberada liberadora
(0,n) (0,n)
DEPARTAMENTO RESPONSVEL DISCIPLINA
(1,1) (0,n)
(0,n)

DISC-CURSO

(0,n)
(0,n) (1,1)
ALUNO INSCRIO 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
Cardinalidades: Dado ou informao que associad
ocorrncia de uma entidade ou
Mnima: 0 (opcional) ou 1 (obrigatrio);
relacionamento
Mxima: 1 (mono-valorado) ou n (mul8valorado).

CLIENTE PROJETO

telefone (0,n) tipo


cdigo cdigo
nome nome
Maio 2014
atributo obrigatrio
Banco de Dados - Modelagem Conceitual 24
Atributo em relacionamento

(1,n) (0,n)
Atributo
ENGENHEIRO em relacionamento
ATUAO 1:n PROJETO

Cdigo Nome Funo Cdigo Ttulo

n de parcelas

(0,1) (0,n)

Carlos A. Heuser
FINANCEIRA FINANCIAMENTO VENDA

taxa de juros
A. Heuser 5

Maio 2014 Banco de Dados - Modelagem Conceitual 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
PESSOA nome
cdigo endereo
PESSOA nome
endereo

capacidade
PRATELEIRA nmero do corredor
capacidade nmero da prateleira
PRATELEIRA nmero do corredor
Maio 2014 Banco dnmero daConceitual
e Dados - Modelagem prateleira 26
Relacion. iden8cador / en8dade fraca

nmero de
cdigo nome seqncia nome

(1,1) (0,n)
EMPREGADO DEPENDENTE

Carlos A. Heuser
entidade fraca
Relacionamento Entidade
identificador fraca
Heuser

Maio 2014 Banco de Dados - Modelagem Conceitual 27


elacionamento identificador (recurso)
Recurso do relacionamento iden8cador

GRUPO cdigo

(1,1)

cdigo +
(0,n) nmero da
empresa
EMPRESA nmero da
empresa
(1,1)

Carlos A. Heuser
cdigo +
nmero da
(0,n) empresa +
nmero da nmero da
FILIAL filial
filial 60
Maio 2014 Banco de Dados - Modelagem Conceitual 28
Relacionamento com atributo iden8cador

(1,n) (0,n)
MDICO CONSULTA PACIENTE

data/hora

Carlos A. Heuser
Duas instncias de consulta
(par mdico-paciente) se
distinguem pela data/hora
da consulta.
Heuser
Maio 2014 Banco de Dados - Modelagem Conceitual 29
Generalizao / especializao
Permite Generalizao/especializao
atribuir propriedades par8culares a um
subconjunto das ocorrncias (especializadas) de uma
en8dade genrica:
(1,1) (0,n) nome
FILIAL CLIENTE
cdigo

Smbolo da
generalizao / Entidade
especializao genrica

Entidade PESSOA PESSOA


especializada FSICA JURDICA
(herda
propriedades) CIC sexo CGC tipo de
Maio 2014 Banco de Dados - Modelagem Conceitual
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
" Cor; #
" Nmero;
" Abrir Porta; 15 45 70
" Fechar Porta;
" Arquiteto.

Maio 2014 Banco de Dados - Modelagem Conceitual 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].

Habitantes Co de Guarda

41
Classe: Pessoa Classe: Casa Classe: Cachorro

Maio 2014 Banco de Dados - Modelagem Conceitual 41


Conceitos OO: herana
Generalizao: quando Estudante
classes tm semelhanas Nome
podemos denir uma
classe mais geral;
Especializao: muitas Universitario EstudanteEnsinoMedio

vezes um conceito pode Matrcula Srie

ser renado, adicionando-


se novas caracters8cas.
EstudanteGraduacao EstudanteMestrado
Curso Orientador

Maio 2014 Banco de Dados - Modelagem Conceitual 42


O diagrama de classes da UML

Classe
Abstrata

Classe
Herana Associativa

Nome
Atributos
Operaes

Associao (e
suas cardinalidades)

Agregao
Classe

Representa as classes relevantes (abstrao!) para


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

Representao Se estiver em itlico, a classe abstrata.


em UML

Sintaxe: <escopo> <nome> : <tipo> =


Nome da Classe <valor default>
Escopo:
<Lista de atributos>
- privado
+ pblico
<Lista de operaes> # 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)
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.
Generalizao
Especializao

Maio 2014 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. Nenhum, um, ou vrios.

Maio 2014 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