Sunteți pe pagina 1din 51

P

EDUCAO ORACLE

MODELAGEM DE DADOS NVEL CONCEITUAL PARTE AVANADA

MATERIAL TRADUZIDO DO MANUAL ORACLE MDF - DATA AND FUNCTION MODELING AND METHODOLOGY Verso em 02/10/97

OBJETIVOS DA SEO Ao final desta seo, voc estar apto a: 1 Validar se um atributo esta adequadamente colocado baseando suas dependncias nos UIDs da entidade.

2 Resolver relacionamentos vrios para vrios (many to many) com entidades de interseco. 3 Identificar e modelar construes de dados incluindo entidades recursivas, subtipos e relacionamentos exclusivos.

NORMALIZAR O MODELO DE DADOS Normalizao um conceito de banco de dados relacional, mas seus princpios so aplicados na Modelagem de Dados Conceitual. Validar cada colocao de atributos usando as regras de normalizao. Regra da Forma Normal Primeira Forma Normal Descrio Todos os atributos devem ter somente um valor para cada ocorrencia da entidade (valor simples). Um atributo deve depender por inteiro do UID (identificador nico)da entidade Nenhum atributo no-UID pode depender de outro atributo noUID, ou seja, atributo no - chave no deve depender de atributo no- chave.

Segunda Forma Normal

Terceira Forma Normal

Um modelo de dados ER normalizado traduz-se automaticamente em um projeto de banco de dados relacional normalizado. Notas Rpidas A Terceira forma normal geralmente aceita com o objetivo de eliminar a redundncia no projeto de banco de dados. Formas normais maiores no so largamente usadas.

Modelagem de dados conceitual - avanada Banco de Dados

Modelagem e Projeto de

Normalizar o modelo de dados-cont. Regra da Primeira Forma Normal (1FN): Todos atributos devem assumir valores nicos para cada instncia da entidade. Checagem da Validao Validar que cada atributo tenha um valor para cada ocorrncia da entidade. Nenhum atributo deve ter valores repetidos (mais de um valor). Exemplo A entidade CLIENTE esta na 1FN? Se no, como poderia ser convertido a uma 1FN?

C L I E N T E # * id e n t if ic a d o r * d a t a d e c o n t a t o
O atributo data de contato tem mltiplos valores, portanto a entidade CLIENTE no uma 1NF. Crie uma entidade CONTATO adicional com um RELACIONAMENTO vrios para um.

CONTATO # *data de contato o local o resultado

para

CLIENTE # *identificador
o assunto do

Se um Atributo tem Mltiplos valores, crie uma entidade adicional e a relacione com sua entidade original com um relacionamento vrios para um.

Normalizar o Modelo de Dados-cont. Regra da Segunda Forma Normal(2FN): um atributo deve ser totalmente dependente do UID (IDENTIFICADOR NICO ) da entidade. Checagem de validao Verificar que o atributo inteiramente dependente sobre o UID de sua entidade. Cada instncia especfica do UID deve determinar uma simples instncia de cada atributo Verificar que um atributo no dependente sobre apenas uma parte do seu UID da entidade. Exemplo Validar a colocao dos atributos da entidade CURSO
CURSO # *cod. *nome *durao *taxa

Cada instncia de um cdigo de curso especifica um valor para nome, durao e taxa. Os atributos esto apropriadamente colocados. Exemplo Validar a colocao de atributos para as entidades CONTA e BANCO.
CONTA #*numero *balano contanm *data ero conta *agncia
gerenciado por o gerente da

BANCO #*nmero ban banco *nome

Cada instncia de BANCO e nmero de conta determina valores especficos de balano e data para cada conta. O atributo agncia est mal colocado. Ele depende do BANCO mas no do nmero da conta. Isto no deveria ser um atributo de CONTA.

Modelagem de dados conceitual - avanada Banco de Dados

Modelagem e Projeto de

Se um atributo no inteiramente dependente do UID da entidade ento est mal colocado e deve ser removido.

Normalizar o Modelo de Dados-cont. Regra da Terceira Forma Normal(3FN): Nenhum atributo no-UID pode ser dependente de outro atributo no-UID. Checagem de Validao Validar que cada atributo no-UID no seja dependente de outro atributo no-UID. Mover qualquer atributo no-UID que depende de outro atributo no UID. Exemplo Algum dos atributos no-UID para esta entidade dependem de outros atributos no-UID?
PEDIDO # *id *data *id do cliente *nome do cliente *estado
ge

Os atributos nome do cliente e estado dependem do id do cliente. Crie outra entidade chamada CLIENTE com o UID id do cliente, e coloque os atributos afins.
PEDIDO # *id *data CLIENTE # *identidade *nome *estado

para

o mandante de

Nota Rpida Se um atributo depende de um atributo no-UID, mova ambos para uma nova entidade relacionada.

Modelagem de dados conceitual - avanada Banco de Dados

Modelagem e Projeto de

EXERCCIO 4-1 O MER apresentado abaixo no est normalizado. Redesenhe-o produzindo um novo MER normalizado. Para isso verifique entidade por entidade se: 1- No existem grupos repetitivos(1FN). 2- Todos os atributos dependem do UID por inteiro.(2FN). 3- No existe nenhum atributo dependente de outro atributo no-UID.

MATRCULA cod.grau cod.professor descrio do grau nome do curso

DISCIPLINA cdigo nome cod.professor cod.departamento nome professor nome departamento

ALUNO nmero nome sobrenome nascimento

RESOLVER RELACIONAMENTOS M:M Atributos podem parecer associados com o relacionamento M:M. Resolver o relacionamento M:M pela adio de uma entidade interseco com aqueles atributos. Exemplo Considere qo relacionamento M:M entre PRODUTO e VENDEDOR. Qual o preo atual de um especfico PRODUTO de um especfico VENDEDOR?

preo atual parece ser um atributo do relacionamento entre PRODUTO e VENDEDOR. Atributos descrevem somente entidades. Se atributos descrevem um relacionamento, o relacionamento deve ser resolvido.

Modelagem de dados conceitual - avanada Banco de Dados

Modelagem e Projeto de

Resolver Relacionamentos M:M-cont. Substituir ou resolver um relacionamento M:M com uma nova Entidade Interseco e duas relaes M:1. Exemplo O relacionamento M:M entre PRODUTO e VENDEDOR pode ser resolvido pela adio de uma entidade interseco ITEM DO CATLOGO. Preo atual realmente um atributo desta entidade.
ITEM CATLOGO *preo atual *quant. do pacote *unidade de medida
para

VENDEDOR # *cdigo *nome


fornecedor de

para

fornecido por

PRODUTO # id * *nome *descrio

Uma vez definida a entidade ITEM CATLOGO, requeridos os atributos: quantidade do pacote e unidade de medida tambm so atributos de ITEM CATLOGO. O UID para ITEM CATLOGO composto pelos seus dois relacionamentos Notas Rpidas Uma Entidade Interseco frequentemente identificada por seus relacionamentos originais - note a barra de UID. Os relacionamentos vindos da entidade interseco so sempre obrigatrios. Estas entidades frequentemente representam o que realmente acontece no mundo dos negcios. Estas costumam conter consumveis como a quantidade usada e datas. Elas tendem a ser as maiores e mais volteis entidades.

10

Resolver Relacionamentos M:M-cont. Posicionar Entidades Interseco Layout do relacionamento M:M

gerenciado Layout da Entidade Interseco

ou
entidade interseco

entidades referentes

Notas Rpidas A entidade referente uma entidade que no tem o fim obrigatrio conectado a ela Quando o relacionamento M:M est resolvido, o layout do diagrama inteiro talvez precise ser arrastado.

Resolver Relacionamentos M:M-cont.


Modelagem de dados conceitual - avanada Banco de Dados

11

Modelagem e Projeto de

O UID de uma entidade interseco frequentemente composto de seus relacionamentos com as entidades originrias. Exemplo Resolver a seguinte relacionamento M:M para acomodar esses requerimentos adicionais: Trace a data em que cada aluno foi matriculado, a data em que completou o curso e o grau do aluno.
ALUNO # *id *sobrenome *nome o telefone
matriculado em escolhido por

CURSO # *cdigo *nome o taxa o durao

Soluo Adicione a entidade interseco MATRCULA e dois relacioonamentos M:1.


MATRCULA *data da matrcula o data em que completou o grau

para

para

matriculado em

escolhido por

ALUNO # *id *sobrenome *nome o telefone

CURSO # *cdigo *nome o taxa o durao

MATRCULA tem os atributos data de matrcula, data em que completou e grau. O UID de matrcula feito de seus relacionamentos com ALUNO e CURSO.

Nota Rpida

12

Este modelo guarda somente a ltima data em que o aluno foi matriculado em um especfico curso. Se h necessidade de se manter vrias matrculas, inclua o atributo data de matrcula como parte do UID.

Resolver Relacionamentos M:M-cont. Um relacionamento com a entidade interseco, para duas entidades originantes, pode no ser adequada(suficiente) para definir unicamente cada ocorrncia da entidade interseco. Exemplo Resolva o seguinte relacionamento M:M para acomodar esses requerimentos adicionais. Trace a data que cada empregado designado ao projeto e a durao de cada um.
EMPREGADO # *id *nome
designado a

PROJ ETO # *nmero *ttulo

tarefa do

Adicione uma entidade interseco chamada TRABALHO DESIGNADO com atributos data da tarefa e durao.
TRABALHO DESIGNADO # *data da tarefa *durao

para

para

prestado por

o assunto de

EMPREGADO # *id *nome

PROJ ETO # *nmero *ttulo

TRABALHO DESIGNADO parcialmente identificado pelas suas relaes com EMPREGADO e PROJETO, mas estas duas relaes no so suficientes para identificar unicamente um TRABALHO DESIGNADO. Um empregado pode ter mltiplas tarefas para o projeto, com diferentes datas de
Modelagem de dados conceitual - avanada Banco de Dados

13

Modelagem e Projeto de

designao. Portanto, o UID de TRABALHO DESIGNADO deve incluir o EMPREGADO relacionado, o PROJETO relacionado e o atributo DATA DA TAREFA.

Resolver Relaes M:M-cont. Uma vez definida a entidade interseco, procure por atributos adicionais que descrevam a entidade interseco. Exemplo Qual informao sobre o relacionamento entre PRODUTO e VENDEDOR precisa ser conhecida? Ns precisamos traar o preo atual de um especfico PRODUTO vindo de um especfico VENDEDOR. Resolver o seguinte relacionamento M:M para acomodar esses requerimentos adicionais.

Adicione a entidade interseco ITEM CATLOGO com um atributo de preo atual. Que informaes precisam ser conhecidas sobre ITEM CATLOGO? Ns tambm precisamos saber a quantidade do pacote e a unidade de medida para cada ITEM CATLOGO.

14

ITEM CATLOGO *preo atual *quant. do pacote *unidade de medida

para

VENDEDOR # *cdigo *nome


fornecedor de

para

fornecido por

PRODUTO # id * *nome *descrio

Modelagem de dados conceitual - avanada Banco de Dados

15

Modelagem e Projeto de

Resolver Relacionamentos M:M-cont. Procurar por atributos que identificam, ou ajudam a identificar uma entidade interseco. Exemplo Como voc identifica cada ITEM CATLOGO? Voc usa a combinao relacionada do cdigo do VENDEDOR e o id do PRODUTO? No, ns temos um catlogo de todos os itens disponveis , e cada um tem um nico nmero de catlogo.
ITEM #*nmero catlogo CATLOGO *preo atual *quant. do pacote *unidade de medida
para para

VENDEDOR #*cdigo *nome


fornecedor de

fornecido por

PRODUTO #* id *nome *descrio

De acordo com as regras do negcio, cada ITEM CATLOGO tem um nico nmero catlogo. Ento este deveria ser o UID da entidade ITEM CATLOGO.

16

Resolver Relacionamentos M:M-cont. Resolver todos os relacionamentos M:M ao fim da fase de Anlise. Essa resoluo forada pode resultar em uma entidade relacionamento sem atributos. Exemplo Na situao da Video Locadora, o seguinte relacionamento M:M foi definido.
FILME # *id *ttulo o categoria
estrelado por

a estrela do

ATOR # *cdigo *nome artstico o nome real o data de nasc.

Ao fim do estgio de anlise, o usurio no tinha identificado quaisquer atributos que so associados com o relacionamento M:M. Resolver o relacionamento M:M com uma entidade interseco sem atributos
ATUAO DA ESTRELA

para

para

estrelado por

a estrela de

FILME # *id *ttulo o categoria

ATOR # *cdigo *nome artstico o nome real o data de nasc.

Notas Rpidas Uma entidade interseco sem atributos apenas uma lista de referncia cruzada bi-direcional entre as ocorrncias das entidades. Uma entidade interseco sem atributos uma exceo regra que uma entidade deve ter atributos para ser uma entidade. O UID para uma entidade interseco vazia sempre composta das relaes das duas entidades nas quais ela foi originada.
Modelagem de dados conceitual - avanada Banco de Dados

17

Modelagem e Projeto de

18

EXERCCIO 4-2 No MER do exerccio Grupo de usurios da apostila anterior, existe um relacionamento de M:M entre as entidades MEMBRO e REA DE INTERESSE. Resolva este relacionamento baseado nas seguintes informaes adicionais: Queremos tambm manter uma pequena descrio do interesse de cada membro numa rea especfica. Por exemplo, queremos documentar que um membro j tem um grande sistema financeiro que ele desenvolveu dentro de casa. Pode haver, porm, algum membro interessado numa certa rea sem que descrevamos seu interesse. EXERCCIO 4-3 Resolver o seguinte relacionamento M:M entre CLIENTE e PRODUTO. Adicione os atributos data do pedido, quantidade e preo.

CLIENTE # *id *nome *sobrenome

o solicitante de pedido por

PRODUTO # *nmero * nome * unidade de medida

Modelagem de dados conceitual - avanada Banco de Dados

19

Modelagem e Projeto de

MODELO DE DADOS HIERRQUICO Representar os dados hierrquicos como um conjunto de relacionamentos M:1. Exemplo Modelar a estrutura de organizao hierrquica como um conjunto de relacionamentos M:1.

COMPANHIA

TIME

DIVISO DEPARTAMENTO

DEPARTAMENTO

DIVISO TIME

COMPANHIA

Modelo de Dados Hierrquico-cont.


20

O UID para um conjunto de entidades hierrquicas pode ser propagado atravs de mltiplos relacionamentos. Exemplo Quais so os UIDs das entidades ANDAR, SUTE e QUARTO?
QUARTO # *id

localizado dentro que contm

SUTE # *nmero o inquilino


localizado sobre que contm

ANDAR # *nmero
est contido que contm

PRDIO # *id *nome *endereo

O UID de QUARTO o id do quarto e a SUTE em que est localizado. O UID de SUTE o nmero da sute e o andar em que est localizado. O UID de ANDAR o nmero do andar e o PRDIO em que est localizado.

Modelagem de dados conceitual - avanada Banco de Dados

21

Modelagem e Projeto de

Modelo de Dados Hierrquico-cont. Considere a criao de atributos artificiais para ajudar a identificar entidades nas relaes hierrquicas. Exemplo Em uma tpica organizao de estrutura, o que poderia unicamente identificar instncias das entidades DIVISO, DEPARTAMENTO e TIME?
TIME

DEPARTAMENTO

DIVISO

COMPANHIA

Cada TIME deveria ser identificado baseado em seus DEPARTAMENTO, DIVISO, COMPANHIA. Ou cada entidade poderia ter um nico, independente e artificial cdigo de identificao. Notas Rpidas Estes nicos, independentes e artificiais codigos de identificao tendem a ser curtos no tamanho.

22

Se a estrutura hierrquica muda constantemente, use identificadores independentes e artificiais.

Modelagem de dados conceitual - avanada Banco de Dados

23

Modelagem e Projeto de

MODELO DE RELACIOINAMENTOS RECURSIVOS Um Relacionamento Recursivo o relacionamento entre a entidade e ela mesma. Exemplo Veja o relacionamento recursivo no seguinte diagrama E-R.
EMPREGADO #*nmero *nome *sobrenome o trabalho o salrio o comisso
gerente de

gerenciado por

Cada EMPREGADO pode ser gerenciado por um e somente um EMPREGADO. Cada EMPREGADO pode ser o gerente de um ou mais EMPREGADOS. Notas Rpidas As convenes do diagrama E-R que mostra o relacionamento recursivo conhecida como orelha de porco. O loop pode aparecer em qualquer um dos lados do box.

24

Modelo de Relacionamentos recursivos-cont. Considere a representao hierrquica como um relacionamento recursivo. Exemplo Um hierarquia de negcio pode ser desenhada como um relacionamento recursivo.
TIME

dentro feito de

DEPARTAMENTO

ELEMENTO DA ORGANIZAO #*id *nome


dentro

feito de

dentro feito de

DIVISO

dentro feito de

COMPANHIA

Notas Rpidas Uma nica entidade recursiva deve incluir todos os atributos de cada entidade individual. Idealmente, as entidades em cada nvel hierrquico poderiam ter os mesmos atributos. Um modelo de organizao recursiva pode prontamente acomodar a adio ou subtrao de organizao de camadas. de Um modelo de organizao recursiva no pode lidar com relaes obrigatrias. Se cada ELEMENTO DA ORGANIZAO deve estar dentro

Modelagem de dados conceitual - avanada Banco de Dados

25

Modelagem e Projeto de

outro ELEMENTO DA ORGANIZAO, a organizao hierrquica teria de ser infinita. Um relacionamento recursivo deve ser opcional em ambas direes.

26

Modelo de Relacionamentos Recursivos-cont. Dados da Conta de Materiais podem ser modelados com vrias entidades para cada categoria da parte, e um conjunto de relacionamentos entre cada uma destas entidades. Exemplo A organizao da manufatura de um automvel: partes elementares, submontagem, montagem e produtos. O seguinte diagrama E-R modela estes dados considerando cada uma destas categorias como uma entidade.
PARTE
feito de Amostra de arruela, Instncias termostato, chip , porca,parafuso, capa do cinto radiador, uma parte de

uma parte de

ELEMENTAR ELEMENTAR
uma parte de

Amostra de ventarola, Intncias mdulo de radiador, carburador, ignio, afogador, motor feito de

feito de

Amostra de sistema de Instncias sistema de reasfriamento, sistema de ignio, motor combustvel,

SUBuma parte de MONTAGEMSUB

uma parte de feito de uma parte de uma parte de

MONTAGEM

MMMMMONTMO NTAGEM

uma parte de feito de

feito de

feito de Amostra de carro, Instncias trator, caminho, camionete

feito de feito de

PRODUTO

uma parte de feito de

Modelagem de dados conceitual - avanada Banco de Dados

27

Modelagem e Projeto de

Modelo de Relacionamentos Recursivos-cont. Modelo de dados Conta de Materiais como um relacionamento M:M recursivo. Exemplo Para a organizao da manufatura de automveis, considere todas as partes elementares, sub-montagem, montagem e produtos como instncias de uma entidade chamada COMPONENTES. Ento o complexo prvio do modelo E-R pode ser remodelado como um relacionamento recursivo simples.

COMPONENTE #*identificador

uma parte de

feito de

Cada COMPONENTE pode ser uma parte de um mais COMPONENTEs. Cada COMPONENTE pode ser feito de um ou mais COMPONENTEs.

28

Modelo de Relacionamentos Recursivos-cont. Resolver o relacionamento recursivo M:M com uma entidade interseco e duas relacionamentos M:1 para diferentes instncias de uma entidade original. Exemplo Considere a estrutura do modelo recursivo de Conta de Materiais. Este modelo traar informaes sobre quais componentes so parte da ventarola. Mas se uma arruela fizer parte da ventarola, traaremos tambm como vrias arruelas fazem parte de uma ventarola.
parte de

COMPONENTE #*identificador

uma parte de

feito de

O atributo quantidade parece estar associado com o relacionamento recursivo. Resolver este relacionamento M:M recursivo pela adio da entidade interseco REGRA DE MONTAGEM e duas relaes M:M ligadas entidade COMPONENTE. REGRA DE MONTAGEM ter um atributo de quantidade.
REGRA DE MONTAGEM o quantidade

para

para

feito de

feito de

COMPONENTE # *identificador

Modelagem de dados conceitual - avanada Banco de Dados

29

Modelagem e Projeto de

As duas relaes M:1 vindas da instncia REGRA DE MONTAGEM sero associadas com diferentes instncias da entidade COMPONENTE. Por exemplo, a instncia REGRA DE MONTAGEM de arruela a ventarola ter um relacionamento M:1 com a instncia COMPONENTE para arruela e um segundo relacionamento M:1 com a instncia COMPONENTE para ventarola. EXERCCIO 4-4 Desenvolva dois modelos E-R representando a situao abaixo. Um deles na estrutura hierrquica e outro na estrutura recursiva. Nossa companhia vende produtos em todo Brasil. Assim, dividimos o pas em quatro grandes regies: Sul, SP-Rio, Central e Norte. Cada regio de vendas possui identificador nico. Cada regio ,por sua vez, est dividida em distritos de vendas. Por exemplo, a regio Norte engloba os distritos Amaznia, Zona da Mata e Caatinga. Cada distrito tambm tem um cdigo nico. Cada distrito composto de territrios de vendas. A Zona da Mata por exemplo, engloba os territrios: Costa Norte e Costa Leste. J o distrito Amaznia engloba os territrios: Solimes-Manaus, Par-Norte e Par-Sul. Cada territrio est dividido em reas de vendas: Por exemplo, Costa Norte engloba as reas: Grande So Luiz, Grande Fortaleza etc. Cada vendedor responsvel por uma ou mais reas de vendas, para qual ele possui uma cota. Tambm temos gerentes responsveis por um ou mais distritos, e diretores responsveis por uma ou mais regies de vendas. O gerente responsvel por um distrito tambm responsvel pelos territrios deste distrito. Ns no sobrepomos as responsabilidades dos funcionrios: uma rea de vendas sempre da responsabilidade de apenas um vendedor. Alm disso, as responsabilidades de nossos diretores e gerentes no se sobrepem. As vezes, algum diretor, gerente ou vendedor est para deixar as empresa ou precisou ficar ausente por algum motivo. Ns identificamos todos nossos funcionrios pelos seus IDs.

30

MODELANDO PAPIS COM RELACIONAMENTOS Ateno com as entidades que representem papis. Exemplo No modelo E-R para a Training Company, foi definida uma entidade INSTRUTOR e uma entidade ALUNO. Este modelo trabalha bem se um INSTRUTOR nunca for um ALUNO e se um aluno nunca for INSTRUTOR. Mas o que acontece se um INSTRUTOR tambm um ALUNO?
MATRCULA *data da matrcula o data que completou o grau
para para

matriculado em

matriculado por

ALUNO # *id * sobrenome *nome o telefone

CURSO # *cdigo *nome o durao o taxa

lecionado por o professor de

INSTRUTOR # *id *sobrenome *nome o telefone

Entidades que representam papis podem dividir instncias sobrepostas.

Modelagem de dados conceitual - avanada Banco de Dados

31

Modelagem e Projeto de

Modelando Papis com Relacionamentos-cont. Use relacionamentos para modelar papis. Relacionamentos permitem uma simples entidade instncia a assumir vrios papis. Exemplo Para a Training Company, definir a entidade pessoa que pode suportar os papis de INSTRUTOR e/ou ALUNO.
REGRA DE MONTAGEM o quantidade

para aluno de

para

matriculado por

PESSOA # *id *sobrenome *nome o telefone

instrutor de lecionado por

CURSO # *cdigo *nome o durao o taxa

32

MODELANDO SUBTIPOS Use subtipos para modelar tipos de entidades exclusivas que tm atributos e relaes em comum. Exemplo Uma empresa definiu dois tipos de funcionrios: privilegiados e noprivilegiados. Para todos eles, traar cada nmero, nome, sobrenome, e o departamento designado. Para os privilegiados traar tambm seu salrio. Para os no-privilegiados trace a quantia horria, a quantia total e membro da unio. Criar um super tipo FUNCIONRIO com dois subtipos. Cada FUNCIONRIO tambm um FUNCIONRIO PRIVILEGIADO ou um FUNCIONRIO NOPRIVILEGIADO.

FUNCIONRIO

# *nmero *nome *sobrenome

FUNCIONRIO PRIVILEGIADO *salrio

FUNCIONRIO NO-PRIVILEGIADO *quantia horria *quantia total


membro de

designado a feitode feito de

DEPARTAMENTO

UNIO

Nota Rpida Tome cuidado com as instncias que podem ser os dois subtipos-a construo subtipo/supertipo incorreta nestas situaes.

Modelagem de dados conceitual - avanada Banco de Dados

33

Modelagem e Projeto de

Modelando Subtipos-cont. Um supertipo uma entidade que tem subtipos. Um super tipo pode ser dividido em dois ou mais subtipos exclusivos e mtuos. Exemplo Um FUNCIONARIO tambm um FUNCIONRIO PRIVILEGIADO ou um FUNCIONRIO NO-PRIVILEGIADO, mas no ambos. Um supertipo pode ter atributos e relacionamentos compartilhados entre seus subtipos. Exemplo Todos FUNCIONRIOs devem ter o atributo nmero, nome, sobrenome. Todos FUNCIONRIOs devem ser designados a um e somente um DEPARTAMENTO. Cada subtipo pode ter seus prprios atributos e relacionamentos. Exemplo O subtipo FUNCIONRIO PRIVILEGIADO tem um atributo salrio. O subtipo FUNCIONRIO NO-PRIVILEGIADO tem atributos de quantia horria e quantia total, e um relacionamento com a entidade UNIO. Nota Rpida Um subtipo sem atributos ou relacionamentos prprios pode ser um sinnimo da entidade supertipo e no um subtipo.

34

Modelando Subtipos-cont. Todas instncias da entidade supertipo deve pertencer a uma e somente uma entidade subtipo. Subtipos devem formar um conjunto completo sem sobreposies. Exemplo Geralmente, um trabalho manual ou um trabalho de escritrio, mas devem haver algumas excees.
TRABALHO OUTRO TRABALHO

TRABALHO MANUAL

TRABALHO DE ESCRITRIO

Regras de Leitura de Supertipos Cada entidade supertipo deve ser tambm um subtipo1 ou um subtipo2 Exemplo Cada TRABALHO deve ser tambm um TRABALHO MANUAL ou um TRABALHO DE ESCRITRIO, ou OUTRO TRABALHO. Regras da leitura de subtipos ...subtipo, que um tipo do supertipo,... Exemplo ...TRABALHO DE ESCRITRIO, que um tipo de TRABALHO,... Sempre use o termo OUTRO quando no se tem certeza sobre o complemento do conjunto.

Modelagem de dados conceitual - avanada Banco de Dados

35

Modelagem e Projeto de

Modelando Subtipos-cont. Subtipos podem ser subtipados adiante. Normalmente dois ou trs nveis so adequados. Exemplo Definir adiante subtipos para a entidade subtipo AVIO.

AERONAVE AVIO PROPULSO PLANADOR AVIO TURBINADO AVIO A J ATO

HELICPTERO

CARGUEIRO

OUTROS AVIES

AVIO um subtipo de AERONAVE e um supertipo de AVIO TURBINADO e PLANADOR. AVIO A JATO herda os atributos e relaes de AVIO TURBINADO, AVIO E AERONAVE.

36

MODELANDO RELACIONAMENTOS EXCLUSIVOS Modelar dois ou mais relacionamentos mutuamente exclusivos vindos da mesma entidade usando um arco. Exemplo Uma CONTA BANCRIA qualquer deve ser apropriada a um INDIVDUO ou apropriada a uma COMPANHIA. Usar o arco para modelar este relacionamento.
CONTA BANCRIA
Adquirida a por o dono da

INDIVDUO

Adquirida por

COMPANHIA
o dono da

Regras de Leitura das Relaes Exclusivas Cada entidadeA qualquer entidade1 relacionamento1 ou entidade2 relacionamento2. Exemplo Cada CONTA BANCRIA deve ser adquirida por um e somente um INDIVDUO ou por uma e somente uma COMPANHIA. Convenes da Modelagem de Arcos Os relacionamentos em um arco tem frequentemente o mesmo nome. Os relacionamentos em um arco devem ser todas obrigatrias ou todas opcionais. Um arco pertence a uma s entidade e devem incluir somente relacionamentos vindos desta entidade. Uma entidade deve ter vrios arcos, mas um relacionamento especfico somente pode participar de um nico arco.

Modelagem de dados conceitual - avanada Banco de Dados

37

Modelagem e Projeto de

Modelando Relacionamenots Exclusivos-cont. Escolha entre duas convenes para desenhar arcos. Conveno de Desenho1-Um Arco com Pontos Opcionais Um ponto no arco usado para significar que um relacionamento pertence ao arco.

Conveno de Desenho2-Um Arco sem Pontos Qualquer relacionamento cruzado pelo arco pertence a ele. Uma quebra no arco indica que o relacionamento no est includo no arco.

38

EXERCCIO 4-5 Desenvolva um MER baseado nas seguintes informaes: A companhia Right-Way Rental Truck aluga pequenos caminhes e trailers para uso local e/ou one way. Temos 347 pontos de aluguis (escritrios) no Oeste dos EUA. Nossa frota possui um total de 5780 veculos, incluindo vrios tipos de caminhes e trailers. Precisamos implementar um sistema para controlar os contratos de locao e alocao de veculos. Cada escritrio aluga veculos que esto em estoque para clientes prontos para tomarem posse do veculo. No fazemos reservas e nem especulamos quando o cliente vai retornar um veculo alugado. A matriz gerencia a distribuio e direciona a transferncia de veculos de um escritrio a outro. Cada escritrio possui um nome e um nmero de trs dgitos que o identifica. Tambm mantemos o endereo de cada escritrio. Cada escritrio funciona como uma base para os veculos e cada veculo est baseado em um nico escritrio. Cada veculo possui um cdigo, situao de registro e nmero de licena. Temos diferentes tipos de veculos: truck 36, truck 24, truck 10, trailer comum e motorhome. Usamos cdigos para identificar cada tipo de veculo. Para cada veculo, guardamos a ltima data de manuteno e a data do vencimento da licena. Com relao aos caminhes, precisamos guardar quantos quilmetros o odmetro est marcando, a capacidade do tanque e se o veculo possui ou no um rdio. Para grandes viagens, os clientes preferem caminhes equipados com rdio. Assim que alugamos um caminho, guardamos a quilometragem corrente. Este procedimento repetido quando o caminho devolvido. A maioria dos contratos de aluguis so para pessoas fsicas, apesar da gente tambm fazer contratos com empresas. Alugamos uma porcentagem de nossos caminhes e trailers para empresas. Para cada nova companhia cadastrada, fornecemos um cdigo e guardamos seu nome e endereo. Para ns da matriz no nos interessa mais qualquer outras informaes sobre elas. Para cada cliente pessoa fsica, mantemos seu nome, telefone residencial, endereo, nmero da carteira de habilitao e a data do vencimento da habilitao. Alm disso, se o cliente danificou o veculo ou no pagou a conta ns o taxamos de invlido e nunca mais alugaremos veculos para el outra vez.
Modelagem de dados conceitual - avanada Banco de Dados

39

Modelagem e Projeto de

Cada contrato de locao feito para apenas um cliente (fsico ou jurdico) e apenas um veculo. Claro que temos clientes que alugam mais de um veculo ao mesmo tempo, mas fazemos um contrato para cada locao. Alis, cada contrato identificado por um nmero de contrato e pelo nmero de escritrio do qual o veculo foi retirado. Tambm guardamos a data do contrato, a durao (esperada) da locao, o nmero do escritrio em que o veculo devolvido, o valor do depsito, a taxa de locao diria e a taxa de quilometragem. Para trailers no controlamos a quilometragem. IMPORTANTE: no queremos automatizar o lado financeiro, apenas os contratos de locao.

40

MODELANDO DADOS NO TEMPO Adicione entidades e relacionamentos ao modelo E-R para acomodar dados histricos. Perguntar ao Usurio: necessrio uma auditoria? Os valores dos atributos podem mudar no tempo? As relaes podem mudar no tempo? Voc precisa examinar dados antigos? Voc precisa manter verses prvias? Nota Rpida Validar quaisquer requerimentos para armazenamento de dados histricos com o usurio. Armazenar dados histricos desnecessrios pode ser muito CARO.

Modelagem de dados conceitual - avanada Banco de Dados

41

Modelagem e Projeto de

Modelando Dados no tempo. Criar uma entidade adicional para mapear o valor de um atributo no tempo. Exemplo Uma firma de consultoria precisa manter informaes sobre seus contratos. Cada contrato tem um nico id de contrato, eles precisam manter a descrio do contrato e o status do contrato (aberto, fechado, ou suspenso). Inicialmente a seguinte entidade CONTRATO foi modelada.
CONTRATO # *id *descrio *valor do status *data efetiva

A entidade CONTRATO acima suporta um nico valor de status corrente para CONTRATO. A lei da firma quer traar as datas em que cada um foi aberto, foi fechado e foi suspenso. Para modelar valores de status excedentes, adicione uma entidade STATUS.
STATUS # *data efetiva *valor
o estado de de

CONTRATO # *id *descrio *valor do status *data efetiva

O UID entidade STATUS relacionado ao CONTRATO e a data efetiva. Nota Rpida Usar uma nica entidade para gravar os valores no tempo dos vrios atributos associados com uma entidade (tanto como o CONTRATO).

Modelando Dados no tempo.


42

Adicione uma nova entidade para comportar um relacionamento que pode mudar no tempo. Exemplo: Um proprietario de imveis deseja registrar dados de locao de seus apartamentos. O modelo abaixo registra apenas o locatrio atual de um apartamento.

APARTAMENTO #*codigo *endereo

PESSOA #*id *ultimo_nome *primeiro_nome

Alugado por

O locatrio de

Adicione a entidade histrico de alugueis para capturar os valores do relacionamento de locao no tempo.
Histrico de locao #*da_data_de 0 para_data_de para PESSOA #*id *ultimo_nome *primeiro_nome

para O locatrio de

Locado por APARTAMENTO #*codigo *endereo

Modelando Dados no tempo - cont.

Modelagem de dados conceitual - avanada Banco de Dados

43

Modelagem e Projeto de

Uma entidade interseco frequentemente usada para guardar informaes sobre relaes que mudam no tempo. Exemplo Uma sociedade profissional quer mapear a relao entre as companhias e seus membros . H um relacionamento M:M entre cada membro e cada companhia.
MEMBRO # *id *sobrenome *nome
contratado por o contratante de

COMPANHIA # *cdigo *nome

Adicione uma entidade interseco, HISTRICO DO EMPREGO, para traar cada contratao dos empregados no tempo e as datas destes empregos.
HISTRICO DO
DO EMPREGO #*a partir da data o at a data
para

para

empregado por

contratante de

MEMBRO #*id *sobrenome *nome

COMPANHIA #*cdigo *nome

Pela incluso do atributo a partir da data UID de HISTRICO DO EMPREGO, este modelo traar vrios termos do EMPREGO em uma nica empresa por um nico empregado.

44

EXERCCIO 4-6 Modificar o MER do exerccio 3-6 (locadora de vdeo) para acomodar as seguintes informaes adicionais que seguem: Ns realmente precisamos manter o histrico de nossos aluguis. Cada vez que um cliente aluga uma fita queremos manter a data do aluguel e a data do retorno. Mantendo esse histrico de aluguel, seremos capazes de analisar o padro de nossos aluguis. Poderemos determinar quantas fitas cada cliente aluga e quantas vezes um cliente devolveu a fita com atraso. Seremos capazes de saber quantas fitas em particular foram usadas e ento saberemos quando retirar cada fita. Tambm seremos capazes de analisar as preferncias de filmes de nossos clientes.
CLIENTE # *nmero * nome * sobrenome o telefone
o locatrio para para

ESTRELA EM CARTAZ

estrelado por alugada por

estrelando em

FITA # *nmero *formato

a cpia de em

FILME # *id *ttulo o categoria

ATOR # *cdigo *nome artstico o nome real o data de nascimento

Modelagem de dados conceitual - avanada Banco de Dados

45

Modelagem e Projeto de

MODELANDO RELACIONAMENTOS COMPLEXOS Ateno aos anis de relacionamentos M:M. Exemplo Desenvolver um modelo E-R para o histrico de emprego. Para cada pessoa guarde o cargo ocupado, companhia em que trabalhou e a data em que cargo foi ocupado. Uma pessoa pode ocupar vrios cargos dentro de uma empresa ao longo de uma carreira. Inicialmente o seguinte modelo foi definido.
PESSOA # *id *sobrenome *nome
ocupante de ocupado por

POSIO # *ttulo do trabalho o descrio

contratado por

incluido no

o empregado de o empregado de

COMPANHIA # *cdigo *nome

A data do cargo parece ser um atributo do relacionamento. Ento resolva cada relao M:M.
PESSOA # *id *sobrenome *nome
contratado em contratado em para

HISTRIA DO CARGO

para ocupado por o assunto de para

POSIO # *ttulo do trabalho o descrio

HISTRIA COMPANHIA
para

HISTRIA ORGANIZAO
para

o empregado para

o empregado para

COMPANHIA # *cdigo *nome

46

Os atributos data do cargo pertencem a qual entidade interseco? Todos eles? Nenhum deles? Modelando Relacionamentos Complexos-cont. Modelando um relacionamento entre trs ou mais entidades como uma Entidade Interseco com relacionamento obrigatrios com estas entidades. Exemplo O histrico de um emprego de uma pessoa na real um relacionamento de 3 direes entre entidades PESSOA, COMPANHIA e CARGO. Usar uma nica entidade interseco chamada HISTRICO DO EMPREGO para modelar este relacionamento.
HISTRICO DO EMPREGO # *datado de * datado para
para em

em

COMPANHIA # *cdigo empregador *nome


de

includo uma parte de

CARGO # *ttulo *descrio

PESSOA # *id *sobrenome *nome

Um relacionamento complexo uma relao entre trs ou mais entidades. Notas Rpidas Uma entidade interseco em um relacionamento complexo sempre tem relaes obrigatrias com as entidades que esto relacionadas. Para uma entidade interseco representar um relacionamento complexo, siga as

Modelagem de dados conceitual - avanada Banco de Dados

47

Modelagem e Projeto de

regras da modelagem E-R bsica para nomear as entidades e analisar

modelar suas relaes, seus atributos e seu UID. Considerar suas relaes obrigatrias como candidatas incluso no seu UID. EXERCCIO 4-7 No MER do exercicio 3-10 (grupo de usurios) um relacionamento M:M foi modelado entre as entidades MEMBRO e PLATAFORMA. Revise o relacionamento baseando-se nas seguintes informaes: No, ns realmente no precisamos saber qual plataforma de computador que cada membro esta usando. Em vez disso, que necessitamos saber quais produtos ORACLE(RDBMS, POR_C, etc) cada membro esta usando e em quais plataformas de computador. No necessrio manter a verso especifica de cada produto, seu nome suficiente.
Usurio de MEMBRO *nome *sobrenome 0 cargo 0 anuidades recebidas * endereo 0 fone 0 tipo 0 PLATAFORMA #*id * descrio

Usado por

EXERCCIO 4-8 Desenvolva um modelo para o seguinte negcio: Eu sou o scio senior de uma grande e diversificada empresa de advogacia. Minha empresa, Bailey e Associados, trata de uma grande variedade de casos, incluindo trafico, violaes, disputas domesticas, questes civis, e casos de homicidios.

48

Nos temos pago um administrador de banco de dados para organizar e mapear vrios dados porque a empresa cresceu mais rpido que imaginavamos e agora h casos caindo um atras do outro. Nossa empresa constituida de departamentos como homicidio, roubo, etc, e cada caso encaminhado para um departamento particular por razes administrativas. Advogados so tambem lotados em departamentos especficos , mas isto somente para efeito de apropriao de despesass e pagamento, pois um advogado pode trabalhar em casos de outros departamentos. Nos necessitamos uma lista de eventos par um dado caso(essencialmente uma historia para o caso) que inclua um relao de eventos e a data que cada evento tornou-se efetivo. Casos tem que ser identificados por um nico numero o qual aparece numa lista com cada data e descrio do evento. Eventos tem codigos especiais, como A para abertura, P para perdido, J para julgamento, e deve ali ser sempre um estado de evento para cada caso. Ns queremos guardar a trilha de informaes importantes associadas com o caso incluindo o departamento relacionado e uma breve descrio( com Jones versus Jones). Aps um caso ter sido fechado, ele pode ser reaberto numa data futura. Ns atribuimos para casos reabertos novo numero , mas nos precisamos associar o novo numero com o anterior. Advogados podem ser envolvidos em vrios casos da mesma maneira varia s pessoas podem ser envolvidas em vrios casos. Por exemplo, Jones pode ser um Juiz em um caso e uma testemunha num outro. Nos estamos interessados em guardar as participaes e os papeis que eles exerceram no contexto de um particular caso. Envolvimentos devem ser identificados pelo seu nome e a data de nascimento, atravs de sistema de numerao nica. Os tipos de pessoas que podem ser envolvidas nos casos incluem Juizes(JU), Testemunhas oculares (TO), defensores(DF), e naturalmente Advogados (AD). Por exemplo, nos temos um caso de assassinato, e estamos trabalhando na defesa. Um advogado designado para o caso, h um juiz presidindo o caso e tambem uma testemunha ocular. Ento h quatro pessoas que participam deste caso, e nos precisamos saber tudo a respeito delas. Neste contexto, estamos vendo o advogado simplesmente como parte do caso, e no como uma conta. Para registrar os vrios papis que pessoas podem assumir, considere que elas podem participar em diferentes papeis em diferentes casos, mas apenas num nico papel em cada caso .

Modelagem de dados conceitual - avanada Banco de Dados

49

Modelagem e Projeto de

50

Modelagem de dados conceitual - avanada Banco de Dados

51

Modelagem e Projeto de

S-ar putea să vă placă și