Você está na página 1de 54

Modelagem de Dados Viso geral do Modelo Entidade-Relacionamento

Modelagem de dados
De acordo com a abordagem, um modelo de dados pode ser

classificado em :
Modelo conceitual
representao dos conceitos e caractersticas observados no ambiente Alto nvel de abstrao, ignora particularidade de implementao Ex: Modelo E-R

Modelo lgico
Representa os dados em alguma estrutura de armazenamento de dados Ex: Modelo Relacional (tabelas), modelos orientados a objetos (classes)

Modelo fsico
Organizao dos arquivos de dados em disco No so manipulados pelo usurio, particular para cada SGBD

Modelagem
Um banco de dados pode ser modelado como:
Uma coleo de entidades, Relacionamento entre entidades.

Uma entidade um objeto que existe e distinguvel de outros objetos.


Exemplo: pessoa, empresa, evento e planta especficos

Entidades possuem atributos


Exemplo: pessoas tm nomes e endereos

Um conjunto de entidades um grupo de entidades do mesmo tipo que

compartilham as mesmas propriedades.


Exemplo: conjunto de todas as pessoas, empresas, rvores, feriados

Conjuntos de entidades cliente e emprstimo

Conjuntos de relacionamento

Um relacionamento uma associao entre vrias entidades Exemplo: Hayes depositante A-102 entidade cliente conjunto de relacionamento entidade conta

Um conjunto de relacionamento uma relao matemtica entre n 2 entidades, cada uma tomada de conjuntos de entidades {(e1, e2, en) | e1 E1, e2 E2, , en En} onde (e1, e2, , en) um relacionamento Exemplo: (Hayes, A-102) depositante

Conjunto de relacionamento tomador

Conjuntos de relacionamento (cont.)

Um atributo tambm pode ser uma propriedade de um conjunto de relacionamento. Por exemplo, o relacionamento depositante entre os conjuntos de entidades cliente e conta pode ter o atributo data-acesso

Grau de um conjunto de relacionamento


Refere-se ao nmero de conjuntos de entidades que participam em um conjunto de relacionamento. Os conjuntos de relacionamento que envolvem dois conjuntos de entidades so binrios (ou de grau 2). Geralmente, a maioria dos conjuntos de relacionamento em um sistema de banco de dados so binrios. Os conjuntos de relacionamento podem envolver mais de dois conjuntos de entidades. Exemplo: Suponha que os funcionrios de um banco possam ter atividades (responsabilidades) em vrias agncias, com diferentes cargos em diferentes agncias. Ento, existe um conjunto de relacionamento ternrio entre os conjuntos de entidades funcionrio, cargo e ag Os relacionamentos entre mais de dois conjuntos de entidades so rados. A maioria dos relacionamentos binria. (Mais sobre isso posteriormente.)

Atributos

Uma entidade representada por um conjunto de atributos, que so propriedades descritivas processadas por todos os membros de um conjunto de entidades. Exemplo: cliente = id_cliente, nome_cliente , rua_cliente, cidade_cliente) emprstimo = (nmero_emprstimo, conta) Domnio o conjunto de valores permitidos para cada atributo Tipos de atributo: Atributos simples e compostos. Atributos de valor nico e de valores mltiplos Exemplo: atributo de valores mltiplos: nmeros_telefone Atributos derivados Podem ser calculados a partir de outros atributos Exemplo: idade, dado data_nascimento

Atributos compostos

Restries de cardinalidade de mapeamento


Expressam o nmero de entidades ao qual outra entidade pode

ser associada atravs de um conjunto de relacionamento.


Normalmente so teis em descrever conjuntos de relacionamento

binrios.
Para um conjunto de relacionamento binrio, a cardinalidade de

mapeamento precisa ser de um dos seguintes tipos:


Um-para-um Um-para-muitos Muitos-para-um Muitos-para-muitos

Cardinalidades de mapeamento

Um-para-um Um-para-muitos Nota: Alguns elementos em A e B podem no ser mapeados para quaisquer elementos no outro conjunto.

Cardinalidades de mapeamento

Muitos-para-um Muitos-para-muitos Nota: Alguns elementos em A e B podem no ser mapeados para quaisquer elementos no outro conjunto.

Chaves

Uma superchave de um conjunto de entidades um conjunto de um ou mais atributos cujos valores determinam unicamente cada entidade.

Uma chave candidata de um conjunto de entidades uma superchave mnima


Id_cliente uma chave candidata de cliente nmero_conta uma chave candidata de conta

Embora possam existir vrias chaves candidatas, uma das chaves candidatas selecionada para ser a chave primria.

Chaves para conjuntos de relacionamento

A combinao de chaves primrias dos conjuntos de entidades participantes forma uma superchave de um conjunto de relacionamento.
(id_cliente, nmero_conta) a superchave de depositante NOTA: isso significa que um par de conjuntos de entidades pode

ter no mximo um relacionamento em um determinado conjunto de relacionamento.


Exemplo: Se desejarmos acompanhar todas as datas de acesso a

cada conta por cada cliente, no podemos considerar um relacionamento para cada acesso. Entretanto, podemos usar um atributo de valores mltiplos.

Precisam considerar a cardinalidade de mapeamento do conjunto de relacionamento quando decidir quais so as chaves candidatas Precisam considerar a semntica do conjunto de relacionamento ao selecionar a chave primria no caso de mais de uma chave candidata

Diagramas ER

Retngulos representam conjuntos de entidades.


Losangos representam conjuntos de relacionamento. Linhas vinculam atributos a conjuntos de entidades e estes a conjuntos de relacionamento. Elipses representam atributos Elipses duplas representam atributos de valores mltiplos. Elipses tracejadas indicam atributos derivados.

Sublinhados indicam atributos de chave primria (que veremos mais tarde)

Diagrama ER com atributos compostos, derivados e de valores mltiplos

Conjuntos de relacionamento com atributos

Funes

Conjuntos de entidades de um relacionamento no precisam ser distintos Os rtulos gerente e funcionrio so chamados funes; eles especificam como as entidades de funcionrio interagem atravs do conjunto de relacionamento trabalha_para. As funes so indicadas nos diagramas ER rotulando as linhas que conectam os losangos aos retngulos. Os rtulos de funo so opcionais e so usados para esclarecer a semntica do relacionamento

Restries de cardinalidade

Expressamos as restries de cardinalidade desenhando uma linha direcionada (), significando um, ou uma linha no direcionada (), significando muitos, entre o conjunto de relacionamento e o conjunto de entidades.

Relacionamento um-para-um:
Um cliente est associado, no mximo, a um emprstimo atravs do

relacionamento tomador
Um emprstimo est associado, no mximo, a um cliente atravs de

tomador

Relacionamento um-para-muitos

No relacionamento um-para-muitos, um emprstimo est associado, no mximo, a um cliente atravs de tomador, um cliente est associado a vrios (inclusive 0) emprstimos atravs de tomador

Relacionamento muitos-para-um

Em um relacionamento muitos-para-um, um emprstimo est associado a vrios (inclusive 0) clientes atravs de tomador, um cliente est associado, no mximo, a um emprstimo atravs de tomador

Relacionamento muitos-para-muitos

Um cliente est associado a vrios (possivelmente 0) emprstimos atravs de tomador Um emprstimo est associado a vrios (possivelmente 0) clientes atravs de tomador

Participao de um conjunto de entidades em um conjunto de relacionamento

Participao total (indicada por uma linha dupla): cada entidade no conjunto de entidades participa no mnimo em um relacionamento no conjunto de relacionamento
Por exemplo, a participao de emprstimo em tomador total Cada emprstimo precisa ter um cliente associado atravs de tomador

Participao parcial: algumas entidades podem no participar em relacionamento algum no conjunto de relacionamento
Exemplo: a participao de cliente em tomador parcial

Notao alternativa para limites de cardinalidade

Os limites de cardinalidade tambm podem expressar restries de participao

Diagrama ER com um relacionamento ternrio

Restries de cardinalidade no relacionamento ternrio


Permitimos no mximo uma seta saindo de um relacionamento ternrio (ou grau maior) para indicar uma restrio de cardinalidade Por exemplo, uma seta de trabalha_em indica que cada funcionrio trabalha no mximo em um cargo em qualquer agncia. Se houver mais de uma seta, haver duas maneiras de definir o significado.

Por exemplo, um relacionamento ternrio R entre A, B e C com setas para B e C poderia significar: 1. Cada entidade A est associada a uma nica entidade de B e C ou 2. Cada par de entidades de (A, B) est associado a uma nica entidade C, e cada par (A, C) est associado a um nico B

Cada alternativa foi usada em diferentes formalismos Para evitar confuso, proibimos mais de uma seta

Cardinalidades de mapeamento afetam o projeto ER

Podemos tornar a data de acesso um atributo de conta, em vez de um atributo de relacionamento, se cada conta puder ter apenas um cliente
Ou seja, o relacionamento de conta para cliente muitos-para-um ou,

equivalentemente, cliente para conta um-para-muitos

Conjuntos de entidades fracos


Um conjunto de entidades que no possui uma chave primria

chamado de conjunto de entidades fraco.


A existncia de um conjunto de entidades fraco depende da

existncia de um conjunto de entidades identificador


Ele precisa se relacionar com o conjunto de entidades identificador

atravs de um conjunto de relacionamento um-para-muitos total, do identificador para o conjunto de entidades fraco
Relacionamento identificador descrito usando um losango duplo

O discriminador (ou chave parcial) de um conjunto de entidades

fraco o conjunto de atributos que distingue entre todas as entidades de um conjunto de entidades fraco.
A chave primria de um conjunto de entidades fraco formada

pela chave primria do conjunto de entidades forte em que o conjunto de entidades fraco dependente de existncia, mais o discriminador do conjunto de entidades fraco.

Conjuntos de entidades fracos (cont.)


Representamos um conjunto de entidades fraco por retngulos duplos. Sublinhamos o discriminador de um conjunto de entidades fraco com uma linha tracejada. nmero_pagamento discriminador do conjunto de entidades pagamento. Chave primria para pagamento (nmero_emprstimo, nmero_pagamento)

Conjuntos de entidades fracos (cont.)

Nota: A chave primria do conjunto de entidades forte no explicitamente armazenada com o conjunto de entidades fraco, j que ela est implcita no relacionamento identificador. Se nmero_emprstimo fosse explicitamente armazenado, pagamento poderia se tornar uma entidade forte, mas, ento, o relacionamento entre pagamento e emprstimo seria duplicado por um relacionamento implcito definido pelo atributo nmero_emprstimo comum a pagamento e emprstimo.

Mais exemplos de conjunto de entidades fraco


Em uma universidade, um curso uma entidade forte e uma

oferta_curso pode ser modelada como uma entidade fraca


O discriminador de oferta_curso seria semestre (incluindo ano) e

nmero_seo (se houver mais de uma seo)


Se modelarmos oferta_curso como uma entidade forte,

modelaramos nmero_curso como um atributo.

Ento, o relacionamento com curso estaria implcito no atributo nmero_curso

Recursos de ER estendidos: Especializao


Processo de projeto de cima para baixo: Designamos

subagrupamentos dentro de um conjunto de entidades que so distintivos de outras entidades no conjunto. Esses subagrupamentos se tornam conjuntos de entidades de nvel inferior que possuem atributos ou participam em relacionamentos que no se aplicam ao conjunto de entidades de nvel superior. Representada por um componente tringulo rotulado ISA (por exemplo, cliente uma pessoa).

Herana de atributo Um conjunto de entidades de nvel inferior herda todos os atributos e a participao de relacionamento do conjunto de entidades de nvel superior ao qual est vinculado.

Exemplo de especializao

Recursos de ER estendidos: Generalizao


Um processo de projeto de baixo para cima Combine vrios

conjuntos de entidades que compartilham os mesmos recursos em um conjunto de entidades de nvel superior.
A especializao e a generalizao so simples inverses uma da

outra; so representadas em um diagrama ER da mesma maneira.


Os termos especializao e generalizao so usados

indistintamente.

Especializao e generalizao (cont.)


Pode ter mltiplas especializaes de um conjunto de entidades

com base em diferentes recursos.


Por exemplo, funcionrio_permanente versus

funcionrio_temporrio, alm de gerente versus escriturrio versus caixa.


Cada funcionrio especfico seria um membro de funcionrio_permanente ou

funcionrio_temporrio
e tambm um membro de gerente, escriturrio ou caixa. O relacionamento ISA tambm chamado de relacionamento

superclasse-subclasse.

Agregao

Considere o relacionamento ternrio trabalha_em, que vimos anteriormente Suponha que queremos registrar gerentes para tarefas realizadas por um funcionrio em uma agncia

Agregao (cont.)

Os conjuntos de relacionamento trabalha_em e gerencia representam informaes superpostas


Cada relacionamento gerencia corresponde a um relacionamento trabalha_em Entretanto, alguns relacionamentos trabalha_em podem no corresponder a nenhum relacionamentos gerencia
Portanto, no podemos descartar o relacionamento trabalha_em

Elimine essa redundncia atravs da agregao


Trate relacionamento como uma entidade abstrata Permite relacionamentos entre relacionamentos Abstrao de relacionamento em nova entidade

Sem introduzir redundncia, o diagrama a seguir representa:


Um funcionrio trabalha em um cargo especfico em uma agncia especfica Um funcionrio, agncia ou combinao de cargos pode ter um gerente associado

Diagrama ER com agregao

Decises de projeto ER
Usar um atributo ou um conjunto de entidades para

representar um objeto.
Se um conceito do mundo real expresso mais

precisamente por um conjunto de entidades ou por um conjunto de relacionamento.


Usar um relacionamento ternrio ou um par de

relacionamentos binrios.
Usar um conjunto de entidades forte ou fraco. O uso de especializao/generalizao contribui para

a modularidade do projeto.
O uso de agregao pode tratar o conjunto de

entidades agregado como uma nica unidade sem preocupao com os detalhes de sua estrutura interna.

Diagrama ER para uma instituio bancria

Resumo dos smbolos usados na notao ER

Resumo dos smbolos (cont.)

Reduo aos esquemas de relao

As chaves primrias permitem que conjuntos de entidades e conjuntos de relacionamento sejam expressos uniformemente como esquemas de relao que representam o contedo do banco de dados.

Um banco de dados que se conforma a um esquema de banco de dados ER pode ser representado por uma coleo de esquemas de relao.

Para cada conjunto de entidades e para cada conjunto de relacionamento, existe um esquema nico ao qual atribumos o nome do conjunto de entidades ou conjunto de relacionamento correspondente.

Cada esquema tem um nmero de colunas (geralmente correspondente aos atributos), que possuem nomes nicos.

Representando conjuntos de entidades como esquemas

Representando conjuntos de entidades como esquemas

Um conjunto de entidades forte reduzido para um esquema com os mesmos atributos. Um conjunto de entidades fraco se torna uma tabela que inclui uma coluna para a chave primria do conjunto de entidades forte identificador.

cliente = ( id_cliente, nome_cliente, rua_cliente, cidade_cliente) emprestimo = (numero_emprestimo, quantia)

Representando conjuntos de relacionamento como esquemas


Um conjunto de relacionamento muitos-para-muitos

representado como um esquema com atributos para as chaves primrias dos dois conjuntos de entidades participantes e quaisquer atributos descritivos do conjunto de relacionamento.
Exemplo: Esquema para o conjunto de relacionamento tomador: Exemplo:

tomador = (id_cliente, nmero_emprstimo )

Exerccio: Reduo aos esquemas de relao

Exerccio: Reduo aos esquemas de relao

UML
UML: Unified Modeling Language

A UML possui muitos componentes para modelar graficamente

diferentes aspectos de um sistema de software inteiro

O diagrama de classe UML corresponde ao diagrama ER, mas

com vrias diferenas.

Resumo da notao do diagrama de classe UML

Notao do diagrama de classe UML (cont.)

Os conjuntos de entidades so mostrados como retngulos e, diferente do diagrama ER, os atributos so mostrados dentro do retngulo e no como elipses separadas. Os conjuntos de relacionamento binrios so representados na UML simplesmente desenhando uma linha conectando os conjuntos de entidades. O nome do conjunto de relacionamento escrito adjacente linha. A funo desempenhada por um conjunto de entidades em um conjunto de relacionamento tambm pode ser especificada escrevendo o nome da funo na linha, adjacente ao conjunto de entidades. Alternativamente, o nome do conjunto de relacionamento pode ser escrito em um retngulo, juntamente com atributos do conjunto de relacionamento, e o retngulo conectado usando uma linha pontilhada at a linha representando o conjunto de relacionamento. Os relacionamentos no binrios so desenhados usando losangos, exatamente como nos diagramas ER

Notao do diagrama de classe UML (cont.)

* Note a inverso de posies na representao da restrio de cardinalidade * A generalizao pode usar setas mescladas ou separadas independentes de disjuno/superposio

Diagrama de classe UML (cont.)

As restries de cardinalidade so especificadas na forma l..h, onde l indica o mnimo e h, o nmero mximo de relacionamentos em que um conjunto de entidades pode participar. Ateno: O posicionamento das restries exatamente o inverso do posicionamento das restries nos diagramas ER. A restrio 0..* no lado E2 e a restrio 0..1 no lado E1 significam que cada entidade E1 pode participar em muitos relacionamentos; ou seja, o relacionamento muitos-para-um de E2 para E1. Valores nicos como 1 ou * podem ser escritos nas bordas; o valor nico 1 em uma borda tratado como equivalente a 1..1, enquanto * equivalente a 0..*.

Você também pode gostar