Documente Academic
Documente Profesional
Documente Cultură
EDUCAO ORACLE
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.
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 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.
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
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 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 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.
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 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
para
fornecido por
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
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.
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
para
para
matriculado em
escolhido por
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
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
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
para
para
fornecido por
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
fornecido por
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
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
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.
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
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
ANDAR # *nmero
est contido que contm
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.
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
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
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
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
MONTAGEM
MMMMMONTMO NTAGEM
feito de
feito de feito de
PRODUTO
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
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
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
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
DEPARTAMENTO
UNIO
Nota Rpida Tome cuidado com as instncias que podem ser os dois subtipos-a construo subtipo/supertipo incorreta nestas situaes.
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.
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.
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.
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.
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
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).
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.
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
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
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
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
estrelando em
a cpia de em
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
contratado por
incluido no
o empregado de o empregado de
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
HISTRIA COMPANHIA
para
HISTRIA ORGANIZAO
para
o empregado para
o empregado para
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
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
47
Modelagem e Projeto de
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 .
49
Modelagem e Projeto de
50
51
Modelagem e Projeto de