Você está na página 1de 19

Modelagem Conceitual de Dados

Jorge de Abreu Soares (jorge@pobox.com)

Introduo

O Projeto de Banco de Dados composto das seguintes etapas: Levantamento de


Requisitos Constru Construo do Modelo Conceitual de Dados

Projeto L Lgico de Dados Projeto F Fsico de Dados BD

Introduo

A Modelagem de Dados Conceitual a etapa responsvel pela identificao dos requisitos de informao no negcio e pela estruturao do banco de dados em um nvel lgico.

Diagrama de Classes da UML


Utilizaremos o diagrama de classes da UML como ferramenta para desenhar o modelo de dados conceitual dos bancos de dados que desejamos projetar.

Modelo de classes da UML


Modelagem de casos de uso: fornece uma perspectiva do sistema do ponto de vista externo Viso interna: descrio do funcionamento interno do software Dois aspectos internos: dinmico e estrutural esttico

Modelo de classes da UML


Aspecto Estrutural Esttico: Permite compreender como o sistema est estruturado internamente, para que as funcionalidades externamente visveis sejam produzidas. Esttico: No apresenta informaes de como os objetos interagem no decorrer do tempo Estrutural: Representao da estrutura das classes e de suas relaes

Modelo de classes da UML


Aspecto Dinmico: descreve a troca de mensagens entre os objetos, e a sua reao a eventos que ocorrem no sistema. realizada pelas modelagens de interao e de estados.

Modelo de classes da UML


Os aspectos no so independentes. Informaes de um alimentam e modificam a estrutura do outro Descrio do aspecto estrutural esttico: feito pelo MODELO DE CLASSES Modelo de classes = Diagrama de classes + descrio textual associada

Modelo de classes da UML


medida que o sistema desenvolvido, o modelo de classes incrementado com novos detalhes. Ele evolui em trs nveis de abstrao:
Modelo Modelo

de classes de dom domnio de classes de especifica especificao Modelo de classes de implementa implementao

Modelo de classes da UML


Modelo de classes de domnio


Construdo na fase de anlise Representa as classes no domnio do negcio em questo No leva em considerao aspectos inerentes tecnologia de implementao (tecnologia perfeita e custo zero)

Modelo de classes da UML


Modelo de classes de especificao


Construdo na fase de projeto Adiciona ao modelo de classes de domnio detalhes especficos, conforme a soluo de software escolhida Pode definir novas classes necessrias para desenvolver a soluo do problema

Modelo de classes da UML


Modelo de classes de implementao


Estende o modelo de classes de especificao Corresponde implementao das classes em alguma linguagem de programao

Modelo de classes da UML


Diagramas de classe: Utilizado na construo do modelo de classes, desde o nvel de anlise at o nvel de especificao o diagrama mais rico da UML, em termos de notao

Classes
Uma classe representa um grupo de objetos semelhantes. Uma classe descreve esses objetos atravs de atributos e operaes. Os atributos correspondem s informaes que um objeto armazena. As operaes correspondem s aes que um objeto sabe realizar.

Notao para uma classe


Representada atravs de uma caixa com no mximo trs compartimentos exibidos. Notao utilizada depende do nvel de abstrao desejado.

Exemplo (classe ContaBancaria)

Associaes
Para representar o fato de que objetos podem se relacionar uns com os outros, utiliza-se a associao. Uma associao representa relacionamentos (ligaes) que so formados entre objetos durante a execuo do sistema.

embora as associaes sejam representadas entre classes do diagrama, tais associaes representam ligaes possveis entre objetos das classes envolvidas.

Associaes - Notao
Representada atravs de um segmento de reta ligando as classes cujos objetos se relacionam. Exemplos:

Multiplicidades
Representam a informao dos limites inferior e superior da quantidade de objetos aos quais um outro objeto pode estar associado. Cada associao em um diagrama de classes possui duas multiplicidades, uma em cada extremo da linha de associao.

Multiplicidades
Nome Apenas Um Zero ou Muitos Um ou Muitos Zero ou Um Intervalo Especfico Simbologia 1..1 (ou 1) 0..* (ou *) 1..* 0..1 li..ls

Exemplo (multiplicidade)
Pode haver um cliente que esteja associado a vrios pedidos. Pode haver um cliente que no esteja associado a pedido algum. Um pedido est associado a um, e somente um, cliente.

Exemplo (multiplicidade)
Uma corrida est associada a, no mnimo, dois velocistas Uma corrida est associada a, no mximo, seis velocistas. Um velocista pode estar associado a vrias corridas.

Conectividade
A conectividade corresponde ao tipo de associao entre duas classes: muitos para muitos, um para muitos e um para um. A conectividade da associao entre duas classes depende dos smbolos de multiplicidade que so utilizados na associao.

Conectividade X Multiplicidade
Conectividade Um para um Um para muitos Em um extremo 0..1 1 0..1 1 No outro extremo 0..1 1 * 1..* 0..* * 1..* 0..*

Muitos muitos

para * 1..* 0..*

Exemplo (conectividade)

Participao
Uma caracterstica de uma associao que indica a necessidade (ou no) da existncia desta associao entre objetos. A participao pode ser obrigatria ou opcional.

Se o valor mnimo da multiplicidade de uma associao igual a 1 (um), significa que a participao obrigatria Caso contrrio, a participao opcional.

Associaes

Outros componentes de associaes:


Nome da associao: fornece um significado semntico mesma Direo de leitura: indica como a associao deve ser lida Papel: representa o papel especfico de uma classe em uma associao

Associaes

Exemplo:

Atributo Multivalorado
So atributos que assumem mais de um valor para cada objeto instanciado da classe Representao: multiplicidade envolta em colchetes. Exemplo:

Classe Associativa
uma classe que est ligada a uma associao, ao invs de estar ligada a outras classes. normalmente necessria quando duas ou mais classes esto associadas, e necessrio manter informaes sobre esta associao. Uma classe associativa pode estar ligada a associaes de qualquer tipo de conectividade.

Notao de Classes Associativas


Representada pela notao utilizada para uma classe. A diferena que esta classe ligada a uma associao. Exemplo:

Associaes n-rias
So utilizadas para representar a associao existente entre objetos de n classes. Uma associao ternria so uma caso mais comum (menos raro) de associao n-ria (n = 3). Na notao da UML, as linhas de associao se interceptam em um losango.

Exemplo (associao ternria)

Associaes Reflexivas

Associa objetos da mesma classe.


Cada objeto tem um papel distinto na associao.

A utilizao de papis bastante importante para evitar ambigidades na leitura da associao. Uma associao reflexiva no indica que um objeto se associa com ele prprio.

Ao contrrio, indica que objetos de uma mesma classe se associam

Exemplo (Associao Reflexiva)

Agregao

um caso especial da associao conseqentemente multiplicidades, papis, participaes, entre outros, podem ser usados igualmente Utilizada para representar conexes que guardam uma relao todo-parte entre si. Em uma agregao, um objeto est contido no outro, ao contrrio de uma associao. Onde se puder utilizar uma agregao, uma associao tambm poder ser utilizada.

Agregaes

Os objetos que fazem parte do todo so criados e destrudos independentemente deste ltimo. Um objeto parte pode ser utilizado para compor diversos objetos todos. A destruio de um desses objetos todo no implica na destruio do objeto parte.

Notao para Agregao


Representada como uma linha conectando as classes relacionadas, com um losango branco perto da classe que representa o todo. Exemplo:

Composies

Os objetos parte pertencem a um nico todo. Objetos parte so sempre criados e destrudos pelo objeto todo. Usualmente os clientes do objeto todo no tm conhecimento da estrutura das partes.
No

objeto composto, so definidas operaes para adicionar e remover objetos componentes.

Agregaes e Composies
Pedido -data : Data -hora : Horrio +obterTotal() : Quantia +adicionarItemPedido(in quantidade : Integer, in prod : Produto) +removerItemPedido() +obterItensPedido() 1

1..* ItemPedido -quantidade : Integer +obterTotal() : Quantia -conectar(in p : Produto) Produto -nome : String -descrio : String -preoUnitrio : Quantia -desconto : float +obterValor() : Quantia

Agregaes e Composies

Note que composies (agregaes) podem se estender por diversos nveis, formando hierarquias de composio (agregao).

Herana X Associao

A herana difere da associao (agregao, composio) porque a primeira se trata de um relacionamento entre classes.
Gerentes so tipos especiais funcionrios. Gerentes chefiam departamentos.

de

Na associao, objetos especficos de uma classe se associam entre si ou com objetos especficos de outras classes.

Notao para Herana

Superclasse

Superclasse

Subclasse1

Subclasse2

... SubclasseN

Subclasse1

Subclasse2

... SubclasseN

Herana Terminologia
subclasse X superclasse. supertipo X subtipo. classe base X classe herdeira. classe de especializao X classe de generalizao. ancestral e descendente (generalizao em vrios nveis)

Herana de Associaes

Atributos e operaes e associaes so herdados pelas subclasses.


Cliente 1 Realiza * Pedido

ClientePessoaFsica

ClientePessoaJurdica

Hierarquias de Heranas

A herana pode ser aplicada em vrios nveis (hierarquia de generalizao). uma classe que herda propriedades de uma outra classe pode ela prpria servir como superclasse. Caractersticas importantes: Transitividade: uma classe em uma hierarquia herda propriedades e relacionamentos de todos os seus ancestrais. Assimetria: dadas duas classes A e B, se A for uma generalizao de B, ento B no pode ser uma generalizao de A. Ou seja, no pode haver ciclos em uma hierarquia de generalizao.

Hierarquias de Heranas

Herana Mltipla

Herana mltipla: Uma classe pode ter mais de uma superclasse.


Tal classe herda superclasses.

de

todas

suas

O uso de herana mltipla deve ser evitado.


Esse tipo de herana difcil de entender. Algumas LPs no do suporte implementao desse tipo de herana (Java e Smalltalk).

Exemplo (Herana Mltipla)

Restries sobre Heranas


Restries sobre heranas so representadas (entre chaves) no diagrama de classes prximas linha do relacionamento. Restries predefinidas pela UML:

Sobreposta Disjunta Completa Incompleta

Exemplos (Restries sobre Heranas)

Exemplo de Heranas e Associaes

Dicas

Papis e subclasses no devem ser confundidos.


Um papel corresponde ao uso de uma certa classe em uma associao.Uma classe pode assumir vrios papis. O modelador deve evitar a criao de subclasses em situaes que podem ser resolvidas atravs da utilizao de papis.

Papel X Subclasse

Herana

Deve-se evitar a construo de hierarquias de generalizao muito profundas (com mais de trs nveis)
dificultam

a leitura do diagrama.

Você também pode gostar