Baixe o app para aproveitar ainda mais
Prévia do material em texto
MODELAGEM DE DADOS 1 Aula 2: Representação utilizando conjuntos ................................................................................. 2 Introdução ............................................................................................................................. 2 Conteúdo ................................................................................................................................ 3 Introdução ........................................................................................................................... 3 Fatos e coisas ...................................................................................................................... 4 Abordagem do projeto ..................................................................................................... 5 Representando uma classe .............................................................................................. 6 Análise dos atributos ......................................................................................................... 7 Propriedade da identidade ............................................................................................... 8 Relacionamentos ............................................................................................................... 9 Estabelecimento de relacionamentos ......................................................................... 10 As quatro possibilidades de multiplicidade do conjunto A em relação ao conjunto B ......................................................................................................................... 11 Atividade proposta .......................................................................................................... 14 Modelar sub conjuntos ................................................................................................... 27 Atividade proposta .......................................................................................................... 33 Aprenda Mais ....................................................................................................................... 37 Referências........................................................................................................................... 38 Exercícios de fixação ......................................................................................................... 38 Chaves de resposta ..................................................................................................................... 43 MODELAGEM DE DADOS 2 Introdução Existem diversas formas para se representar o mundo simbólico. Como a representação é interpretada em cada plano de referência deve-se ter uma forma de registro que diminua as diversas interpretações. O uso de ferramentas matemática permite que se faça o registro com um entendimento comum. Como se observa “coisas” e “fatos” do mundo real e seus relacionamentos, podemos utilizar a teoria dos conjuntos para esta tarefa. Existem diversas ferramentas gráficas para este trabalho, que se desenvolverá utilizando as representações propostas no UML (uma padronização de um conjunto de ferramentas para representação). Destaca-se que o objetivo é o tratamento matemático, não existe a preocupação com a forma de representar, que poderia qualquer outra, mas está se usando UML para seguir a padronização de ferramentas no desenvolvimento de sistemas. Objetivo: 1. Identificar conjuntos do mundo real, relacionamentos e suas propriedades; 2. Identificar particionamentos de conjuntos, subconjuntos e associações. MODELAGEM DE DADOS 3 Conteúdo Introdução O mundo real é complexo e para representar de forma ordenada os “objetos” e “fatos” do mundo real deve-se fazer isso em etapas. Como se viu no capítulo anterior uma das capacidades de aprendizado humano é a abstração. É a partir dela que se pode compreender fenômenos mais complexos. Para se fazer a modelagem conceitual deve se abordar o problema em níveis e para cada nível deve-se acrescentar informações que complete o nível anterior acrescentando- se novas informações às já conhecidas. Assim pode-se diferenciar as dificuldades do mundo real e as que são introduzidas pelos tratamentos tecnológicos. Para tratar de maneira organizada a representação do mundo real a abordagem deve ser feita, no mínimo, em três níveis: conceitual, lógico e físico. FIGURA 1: Abordagem de um projeto de representação do mundo real. MODELAGEM DE DADOS 4 Fatos e coisas Nível Conceitual No nível conceitual identificam e registram-se “fatos” e “coisas” do mundo real. Apenas os conjuntos que são importantes e o relacionamento que existe entre os elementos desses conjuntos. Em nenhum momento pensa-se em tecnologia. O Foco é o “negócio”. Normalmente procura-se identificar o conjunto “alvo”, ou seja, aquele que direciona todo o estudo. Por exemplo, se o mundo real é um estacionamento e o objetivo é o controle de vagas, o conjunto foco é o de vagas. Nível Lógico No nível lógico se introduz os conceitos necessários da tecnologia, por exemplo, no caso de representação de dados são as informações necessárias introduzidas pelos modelos de banco de dados, ou se for para transmissão às características de tratamento dos protocolos. Nível Físico No nível físico as informações necessárias à sua implementação, por exemplo, colocar as informações para representar os dados nas formas de impulsos elétricos ou qualquer outro tipo. Atenção A figura 1 apresentada anteriormente mostra de forma ilustrativa como um projeto de representação do mundo real deve ser implementado. Deve-se identificar o recorte de trabalho, ou seja, o contexto, o plano de referência que vamos tratar. Se isso não for definido corretamente introduz-se um risco muito elevado para o projeto. Sobre esse recorte se faz análise, isto é, observação. E durante essa tarefa podem ser introduzidas distorções. MODELAGEM DE DADOS 5 É uma atividade de risco e deve ser feita com muito cuidado, por isto foi representada por uma linha irregular na figura. Após a modelagem conceitual tem-se o modelo conceitual e ele é entrada para as demais etapas. Na figura a mudança de fase é representada por setas, pois é feita a partir de regras fixas. Abordagem do projeto Definido o recorte devem-se identificar conjuntos no mundo real. A figura 2.2 mostra que se identificou no mundo real um conjunto, inicialmente pensa-se ser uma abstração, que chamados de pessoa. No mundo simbólico será representado por um retângulo e as propriedades observadas nos elementos do conjunto são representadas junto ao retângulo. FIGURA 2: Abordagem mundo real com o mundo simbólico Eles constituem o modelo de imagem, ou seja, como os elementos serão representados. Veja que um elemento do conjunto chamado de objeto, na figura, por exemplo, a pessoa Sr. Joaquim tem a imagem representada na figura segundo o plano de referência que foi definida a imagem. MODELAGEM DE DADOS 6 Vai-se usar na representação o diagrama de classes o principal dos diagramas do UML e pode ser usado para se fazer a modelagem conceitual. Os retângulos e propriedades serão representados segundo as definições do UML. O diagrama é como uma fotografia dos “objetos” e “fatos” identificados a partir do mundo real. É uma representação estática, e não deve ser usado para representar situações dinâmicas no mundo real. Existem ferramentas próprias para isso e não é o objetivo deste trabalho.Vamos criar o diagrama de classes a partir da observação do mundo real para um determinado contexto. O foco da análise é o negócio. Imagine que você está no século 15 e que não existe computador – enquanto estiver fazendo a modelagem conceitual. Ao observar um conjunto sobre o qual temos alguns interesses (guardar os dados dos elementos de um conjunto, por exemplo) dizemos que temos uma classe. As propriedades que desejo observar (propriedades para a qual desejamos guardar valores) são chamado de atributos. Representando uma classe Existem várias formas gráficas para se representar uma classe, mas em UML, quando temos interesse em um conjunto do mundo real, desenhamos: Nome da classe ou elemento da observação Propriedades que se está interessado em observar ou atributos Exemplo: Ao se observar um conjunto de pessoas, e as informações sobre as quais temos interesse são: nome, endereço, telefone, CPF. Ao definir a classe conceitual define-se um modelo de representação dos elementos do conjunto: Assim os elementos (Manoel, rua do bispo, 3, 32116734, 371622571) (Jose, Rua Ava, 34, 3226216, 37162225881) ficam representados: MODELAGEM DE DADOS 7 Atenção Observe que se está representando os valores que os atributos assumem nas representações. Neste caso se diz que a classe foi instanciada, ou seja, recebeu valores. Cada um dos elementos no mundo das representações é chamado de um objeto da classe. Então uma classe representa um conjunto e os elementos do conjunto – objetos – são representados segundo a definição da classe. Dicas 1: • Uma classe é a descrição de um tipo de objeto do mundo real; • Usam-se classes para classificar os objetos que identificamos no mundo real. Análise dos atributos Um atributo é uma propriedade observada do mundo real para um conjunto e um conjunto de atributos para um mesmo elemento constitui a imagem do elemento. Assim, cada elemento no mundo real terá uma imagem e o conjunto de elementos é representado por um conjunto de imagens. Uma forma fácil de representar o conjunto é na forma de tabela. Para o exemplo apresentado tem-se a tabela chamada de Pessoa, normalmente se dá o nome da classe (ou conjunto representado) à tabela, embora isso não seja obrigatório e as colunas da tabela são os atributos desejados, normalmente também se coloca o nome da propriedade como nome da propriedade. MODELAGEM DE DADOS 8 Tabela representativa de chamada de Pessoa O conjunto de valores que uma propriedade pode assumir é chamado de domínio do atributo. Cada atributo tem o seu domínio de valores. Um domínio pode ser enumerável ou não, pode ser finito ou não. Assim o atributo sexo só pode assumir masculino ou feminino, é finito e enumerável. Estes domínios também devem ser definidos nos processos de modelagem conceitual. Há necessidade se identificar o elemento do mundo real a partir de sua imagem, ou seja, há necessidade de se ter propriedades capazes de identificar de forma biunívoca a imagem e o elemento no mundo real. Estas propriedades são chamadas de identificadoras. As propriedades chamadas de identificadoras são aquelas que atendem a uma propriedade, a propriedade da identidade. Propriedade da identidade Um atributo é identificador quando: • É de preenchimento obrigatório; • Se tem a garantia que não existem dois elementos com o mesmo valor para o atributo. Considere na imagem pessoa o atributo endereço, e no contexto é de preenchimento obrigatório. Analisando, este atributo atende à primeira parte da regra. Mas, não atende à segunda, pois não se pode garantir que não exista MODELAGEM DE DADOS 9 duas imagens com o mesmo valor para o atributo, portanto, o atributo não é identificador. Considere agora a propriedade CPF. No contexto que se está analisando é de preenchimento obrigatório e assim atende à primeira parte da regra. Pode-se garantir que não exista dois valores de CPF iguais, portanto, o atributo tem a característica identificadora. Veja que ao se determinar que uma propriedade seja identificadora está se introduzindo uma limitação no domínio do atributo, pois não se permitirá repetições. Pode-se ter mais de um identificador para um conjunto. Um identificador também é chamado de candidato a chave. Essa ação deve ser feita com cuidado e não se devem importar identificadores do simbólico de outras empresas, pois estas podem modificá-los introduzindo um risco elevado para a modelagem que se está realizando. Essa chave é o identificador do conjunto e será usada em toda a construção do modelo conceitual e se for substituída tornará inútil todo o modelo. O ideal é definir atributos artificiais cuja construção e domínio seja definido pelo analista que está fazendo o modelo. Entre os candidatos a chave (ou identificadores) nomeia-se um como chave, ou seja, um identificador para o conjunto. Relacionamentos Outro elemento importante, para a modelagem de classes, é o relacionamento entre os elementos do conjunto. O relacionamento é o mesmo conceito matemático estabelecido em teoria dos conjuntos. Têm-se um relacionamento quando se estabelece alguma “ligação” entre os conjuntos. Não é uma ligação física, é uma ligação definida no plano de referência, por isso não tem como se constatar fisicamente. É um elemento conceitual. Reflete o conhecimento a respeito de alguma coisa. Só existe no mundo simbólico. MODELAGEM DE DADOS 10 Para esclarecer analisar-se-á alguns exemplos: Você tem o conjunto dos homens e o conjunto das mulheres. A relação casamento normalmente associa um homem a uma mulher. A relação possuir associa um elemento do conjunto de objetos a um elemento do conjunto de pessoas. Um relacionamento é um estabelecimento conceitual entre elementos de um conjunto com outro que depende do aspecto do mundo real que se está analisando. Estabelecimento de relacionamentos Quando se tem um conjunto, como por exemplo, o de alunos: Se está analisando, no mundo real, como é o controle de estacionamento construído apenas para alunos, identificamos que o outro conjunto de interesse é o de veículos: Para os dois conjuntos pode-se estabelecer um relacionamento que é representado da seguinte forma: Pode-se escrever o relacionamento que se está estabelecendo. Observe que tem DOIS relacionamentos: de aluno para veículo (relacionamento: possui), e, de veículo para aluno (relacionamento: pertence). O nome desses relacionamentos não são padronizados e devem ser dados de forma a definir as relações. O sentido da relação é indicado por uma seta, como mostrado abaixo: Atenção Assim, o relacionamento mostra o sentido da leitura: Aluno possui veículo; Veículo pertence a aluno. Dica 2: - Um relacionamento é um conceito: não existe fisicamente no mundo real; - Existe sempre dois relacionamentos entre conjuntos (de A para MODELAGEM DE DADOS 11 B e de B para A); - Não force a barra para colocar o mesmo nome para o dois relacionamentos. É perda de tempo e tira o foco da análise que está sendo feita; - Não padronize relacionamentos, eles mudam para cada novo mundo real que se está analisando. As quatro possibilidades de multiplicidade do conjunto A em relação ao conjunto B Existem quatro possibilidades de multiplicidade do conjunto A em relação ao conjunto B: Primeira: Analisando A verifica-se que de todo elemento do conjunto A sai uma fecha: FIGURA 3: Imagem representativa sobre relacionamentosMODELAGEM DE DADOS 12 Pode ser que todos os elementos de A tenham o par (a, b), neste caso se fala para todo a pertencente ao conjunto A temos uma imagem b no conjunto B. Observe que não interessa como chega ou para quem chega ao conjunto B. Neste caso representamos esta informação junto ao relacionamento no sentido da leitura: FIGURA 4: tabela representativa sobre o relacionamento no sentido da leitura LEMOS: Todo veículo pertence a UM aluno. Lemos do seguinte modo: Todo veículo pertence a UM aluno. Segunda situação: Observe que da situação anterior um elemento do conjunto A não tem correspondente no conjunto B. Se existir um elemento (basta um) não ter correspondente que caracterizamos esta situação. Representamos assim: MODELAGEM DE DADOS 13 FIGURA 5: Imagens representativas sobre relacionamentos Existem alunos que TEM ZERO ou UM pai vivo. Terceira situação: De todo elemento de A estabelecemos um relacionamento, mas existem (no mínimo um) elementos que tem mais de um correspondente no conjunto B. Esta situação representa-se na forma: FIGURA 6: Imagens representativas sobre relacionamentos Lemos do seguinte modo: Um aluno cursa uma ou mais disciplinas. Quarta situação: No mínimo um elemento pertencente ao conjunto A não tem correspondente em b e existem elementos no conjunto A com mais de uma imagem. Representa-se: MODELAGEM DE DADOS 14 FIGURA 7: Imagens representativas sobre relacionamentos Atenção • a multiplicidade 0..N ou 1..N está representado o mínimo e o Máximo de relacionamento de um elemento, na forma min..max assim pode se representar 3..10 indica que existem elementos no conjunto a com um mínimo de 3 correspondentes em B e no máximo 10 correspondentes no conjunto B. • Pode-se ainda substituir o N por *. De forma resumida: FIGURA 8: Imagens representativas sobre relacionamentos entre cliente e conta-correte Atividade proposta Considere o mundo real abaixo: Um Banco tem diversas agências identificadas por um código. É importante ter as informações do endereço, telefone, tamanho em metros quadrados de cada agência. Cada agência tem sua carteira de clientes. Não há interesse em saber se o cliente tem ou não conta em outra agência. Do cliente deve-se ter as informações de nome, endereço, CPF. Passamos a ter um cliente quando uma pessoa abre uma conta corrente. Não interessa o número de contas que o cliente abre. Cada conta é identificada por um número, um gerente responsável, um saldo atual e um saldo médio. MODELAGEM DE DADOS 15 Considere o texto abaixo que caracteriza uma descrição de um mundo real para uma empresa, a qual dividiu-se em frases numeradas para facilitar o entendimento: (1) Uma empresa especializada na venda de livros, CD´s e DVD´s necessita de um sistema que a auxilie no controle e na distribuição dos seus produtos, em função de sua notável expansão. (2) O sistema deverá permitir o registro dos pedidos dos clientes. Os clientes ao serem cadastrados deverão informar o nome, o endereço, o número do telefone (de 0 a 3 números diferentes) e número do CPF, que doravante será o seu identificador junto à empresa. (3) Pode-se imaginar que cada cliente poderá realizar um pedido com vários produtos e quantidades. Para identificar um pedido será necessário armazenar o seu número e a sua data. (4)Este pedido deverá ser encaminhado para o departamento de estoque a fim de providenciar a entrega do mesmo na data definida e no endereço estabelecido. Este último podendo ser diferente do endereço informado pelo cliente no ato do seu cadastramento. (5) Uma entrega deverá ser realizada por uma das transportadoras cadastradas. Neste cadastro deverá ser informado o código da transportadora, o endereço, o número do telefone (de 0 a 5 números diferentes) e número do CNPJ (Cadastro Nacional de Pessoa Jurídica do Ministério da Fazenda). (6) A transportadora selecionada assumirá toda a responsabilidade pela carga, mediante o pagamento de um seguro o que deverá ser somado ao valor dos itens constantes em um pedido. (7) Para maior controle, exige-se que associado ao pedido a transportadora identifique, através da placa do veículo, o caminhão que irá fazer o transporte e, através do nome e do número do CPF, o funcionário que irá fazer a entrega. (8)Estas informações são, entretanto, de responsabilidade da transportadora, não cabendo à empresa atacadista nenhuma responsabilidade por erros na informação fornecida. MODELAGEM DE DADOS 16 (9)Ao receber a mercadoria o cliente deverá verificar se a quantidade e o preço de cada item da fatura estão corretos. Se não houver divergências ele assinará o recibo de entrega e lançará a data da mesma, que posteriormente será registrada no sistema. Caso haja alguma divergência o cliente poderá recusar o recebimento dos produtos. Neste caso, a fatura será recusada e os produtos devolvidos. (10) O responsável pela entrega deverá informar a data da entrega e motivo da devolução. O motivo da devolução informado deverá ser escolhido a partir de uma lista contendo o código do motivo e a descrição do mesmo. (10) A transportadora será remunerada em 5% do valor dos itens constantes no pedido (excluído o valor do seguro), mesmo que estes sejam devolvidos. (11) As faturas, após o recebimento, serão transformadas em compromissos financeiros assumidos pelos clientes. (12) Elas poderão ser cobradas à vista ou em parcelas, conforme definição no ato da compra. Todos os boletos de cobrança serão emitidos por uma instituição financeira, dentre as várias cadastradas no sistema. (13) Os boletos deverão informar o número do banco, o nome do banco, o número do código de barras, a data de vencimento e o valor a ser pago. (14) No final de cada mês os bancos mandam um relatório com a relação de todos os boletos que foram pagos. Este relatório deverá conter a data do pagamento e, se houver atraso, o valor da multa e dos juros cobrados. Tal informação deverá ser posteriormente registrada no sistema. (15) Outra necessidade da empresa atacadista é poder controlar melhor o seu estoque de mercadorias. Para isso é necessário conhecer a quantidade disponível em estoque para cada produto comercializado, além de abater do estoque disponível as quantidades vendidas aos seus clientes. Construa o modelo conceitual para representar o modelo. MODELAGEM DE DADOS 17 Chave de resposta: Frase (1): Nesta frase especifica-se que o simbólico da empresa ira tratar livros, cd´s e DVD, que são os tipos de produtos que a empresa comercializa: (plano de referencia de vendas) Frase (2): Nesta frase indica-se que a empresa tem interesse em ter a informação de seus clientes. E afirma-se que um pedido é de um cliente e este deve ter um ou mais pedidos (se não tiver pelo menos um pedido não é cliente – deve se verificar com o usuário.) LIVRO Cod_produto autor editora DVD Cod_produto autor tempo CD Cod_produto autor Num. faixas Tipo_produto Cod_produto nome autor {completo, disjuntos} CLIENTE nome endereço Cpf (ID) Telefone 3 Telefone 1 Telefone 2 PEDIDO 1 1..N MODELAGEM DE DADOS 18 Frase (3): Nesta frase se identifica que existe outro conjunto chamado produtos que são colocados no pedidoFrase (4): No simbólico da empresa, estamos no plano de interesse do controle de estoque e há necessidade de um novo conjunto com dados referentes a entrega, assim pode se completar com o novo conjunto a imagem de pedido e de produto em estoque, que não é a informação do que é incluído no pedido. Assim aparecem dois novos conjuntos um se chamará estoque, e o outro entrega, neste exercício. 1 1..N CLIENTE nome endereço Cpf (ID) Telefone 3 Telefone 1 Telefone 2 PEDIDO numero Data pedido produto quantidade preço descrição Cod_produto 1 1..N estoque Quant. estocada Preço unitario descrição Cod_produto entrega Data-entrega Endereço-entrega 1 1..N CLIENTE nome endereço Cpf (ID) Telefone 3 Telefone 1 Telefone 2 PEDIDO numero Data pedido produto quantidade preço descrição Cod_produto 1 1..N 1 0..N 0..N 1 MODELAGEM DE DADOS 19 Na realidade estoque é um tipo de produto comercializado que apareceu na frase 1 assim substitui-se pela estrutura fica: 1 0..1 0..N 1 entrega Data-entrega Endereço-entrega 1 1..N CLIENTE nome endereço Cpf (ID) Telefone 3 Telefone 1 Telefone 2 PEDIDO numero Data pedido produto quantidade preço descrição Cod_produto 1 1..N {completo, disjuntos} LIVRO Cod_produto autor editora DVD Cod_produto autor tempo CD Cod_produto autor Num .faixas Tipo_produto Cod_produto nome autor Quant. estocada Preço unitario descrição MODELAGEM DE DADOS 20 Frase (5): Nesta frase aparece mais uma necessidade que é ter informações sobre a transportadora que a empresa cadastra. Colocou-se um atributo para cada telefone, e isto só foi possível porque se sabia o número máximo de telefones. E uma nova informação deve ser acrescentada a entrega que é a da transportadora que fará a entrega.·. MODELAGEM DE DADOS 21 Frase (6): Na frase seis tem-se novos atributos necessários para o setor de entrega, e deve-se acrescentar a imagem de pedido as informações necessárias para se somar o frete e o total de itens e que deve entrar no modelo Veja que se acrescenta novos atributos a entrega, e estes devem ser acrescentados a imagem. Frase (8): Veja que na frase 8 tem-se uma regra de negócio do setor de expedição, mas nenhuma nova informação é acrescentada as imagens até aqui identificadas. pedido numero Data pedido Data entrega Endereço entrega Código transp. Valor-frete Total-frete entrega Endereço entrega Data entrega Código transp NOME-FUNCIONARIO CPF-FUNCIONARIO PLACA-CAMINHAO MODELAGEM DE DADOS 22 Frase (9): Se a entrega estiver correta, deve-se saber quem assinou o recebimento da mercadoria e a data, pois a mesma será armazenada. Assim têm-se dois novos atributos que devem ser adicionados a imagem entrega: Outro fato importante para a empresa é quando o produto é recusado, neste caso deve-se criar este conjunto, fazendo referencia a entrega. entrega Endereço entrega Data entrega Código transp NOME-FUNCIONARIO CPF-FUNCIONARIO PLACA-CAMINHAO Nome-recebimento Data-recebimento Data-recebimento 1 1..0 entrega Endereço entrega Data entrega Código transp NOME-FUNCIONARIO CPF-FUNCIONARIO PLACA-CAMINHAO Nome-recebimento Data-recebimento Cod_entrega Percentual _transp Entrega rejeitada Endereço entrega Data entrega Código transp Nome-recebimento Motivo -recusa Cod_entrega MODELAGEM DE DADOS 23 Frase (10): A transportadora será remunerada em 5% do valor dos itens constantes no pedido, e isto é uma regra de negócio que já é atendida pelos conjuntos existentes coloca-se como atributo da transportadora: O modelo fica: Frase (11): É dito que as entregas são transformadas em compromisso financeiro, que é um novo conjunto, de interesse do setor financeiro da empresa, e que se relaciona com a entrega. Esta pode ou não se transformar em um MODELAGEM DE DADOS 24 compromisso financeiro. Não vai se representar todo o modelo para simplificar o entendimento no diagrama abaixo: Frase (12) Nesta frase tem-se a informação que o pagamento pode ser de dois tipos neste caso deve colocar este atributo no conjunto de compromisso financeiro. Identificam-se ainda dois novos conjuntos de interesse da empresa para emitir a cobrança bancaria: o Banco e o boleto. Têm-se os conjuntos: 1 1..0 entrega Endereço entrega Data entrega Código transp NOME-FUNCIONARIO CPF-FUNCIONARIO PLACA-CAMINHAO Nome-recebimento Data-recebimento Cod_entrega Percentual _transp Entrega rejeitada Endereço entrega Data entrega Código transp Nome-recebimento Motivo -recusa Cod_entrega Compromisso financeiro Cpf-cliente Valor-fatura Data-vencimento Cod_entrega 1 0..1 MODELAGEM DE DADOS 25 frase(13) Nesta frase têm-se informações para completar o conjunto de fatura banco (boletos), neste caso se corrige os atributos que foram supostos em fases iniciais. banco Cod-banco Nome-banco agencia Compromisso financeiro Cpf-cliente Valor-fatura Data-vencimento Numero parcelas Cod-entrega Fatura do banco Cpf-cliente Valor-fatura Data-vencimento Data-pagamento banco agencia Código-fatura 0..N 1 1 0..N AGENCIA Fatura do banco Cpf-cliente Valor-FATURA Data-vencimento Data-pagamento Numero banco Código de barras CODIGO-FATURA AGENCIA MODELAGEM DE DADOS 26 FRASE(14) Na frase 14 tem se informações referentes ao recebimento, e como é de interesse da empresa se cria um novo conjunto relaciona-se a fatura. OBS: A resposta poderá ter pequenas variações do gabarito apresentado. Questão 2: Pode-se organizar a informação em uma generalização? Gabarito: Sim. Pode-se criar o conjunto de faturas e criar os subconjuntos fatura paga e fatura não paga. Justificativa: É uma forma mais estruturada de fazer a modelagem Questão 3: Você sabe justificar como foram criados identificadores? Gabarito: No conjunto existem identificadores criados pelo modelador. Justificativa: Isto é uma prática comum para diminuir o risco de alterações no sistema provocadasporá gentes externos. Questão 4: Na generalização poder-se-ia indicá-la como não completa? Pagamento da Fatura nco Cpf-cliente Valor pago Data-vencimento Data-pagamento Valor juros Valor-multa Codigo-fatura Fatura do banco Cpf-cliente Valor-FATURA Data-vencimento Data-pagamento Numero banco Código de barras CODIGO-FATURA AGENCIA 1 0..N MODELAGEM DE DADOS 27 Gabarito: sim, se a empresa tiver mais produtos além dos ditos no texto Justificativa: É comum representa-se apenas o que interessa, mas pode existir outros produtos além dos apresentados no diagrama Questão 5: Pode-se dividir o diagrama e áreas atuação da empresa? Gabarito: Sim, pois mostra-se os conjuntos de entidades que são manuseadas por cada plano de referencia (ou seja setores da empresa) Justificativa: É uma forma comum de organizar os conjuntos envolvidos na empresa. Os conjuntos são modificados gerando novos conjuntos. Assim pode-se separar os conjuntos por setores na empresa. Modelar sub conjuntos Muitas vezes temos um conjunto, no mundo real, mas estamos interessados em um subconjunto, ou por que se deve acrescentar alguma informação, ou precisa-se fazer um tratamento específico desses elementos. Considere o conjunto de inscritos em um concurso público, por exemplo, e modela-se a seguinte classe: O diagrama representa dois subconjuntos no conjunto principal, não interessam para o subconjunto feminino se foi ou não aprovado. Ou seja, nada podemos afirmar sobre a interseção dos dois (ou mais) sub conjuntos. O diagrama representa dois sub conjuntos no conjunto principal não interessam para o sub conjunto de feminino se foi ou não aprovado. Ou seja, nada podemos afirmar sobre a interseção dos dois (ou mais) sub conjuntos. A hierarquia estabelecida do conjunto principal para os sub conjuntos é também chamada de estrutura GEN-ESP (generalização para a especialidade). O conjunto principal também é chamado de super classe e os conjuntos de subclasses. MODELAGEM DE DADOS 28 Uma sub classe pode ter mais de uma superclasse, ou seja, pode se ter um sub conjunto comum a dois conjuntos principais, neste caso, diz se que há herança múltipla. número num.contrato data-contratação contratado número nome endereço candidato número nome endereço trabalhador MODELAGEM DE DADOS 29 Pode-se representar vários subconjuntos destacando–os por uma linha pontilhada algumas restrições entre chaves separadas por vírgula quando existir mais de uma: Foi indicada uma restrição com duas observações: que não foram representados todos os subconjuntos (incompleto)e que podem ir sendo completados, poderia ser completo se todos fossem representados. E que os conjuntos são disjuntos, portanto mutuamente exclusivos, poderia ser sobreposição se o elemento pudesse pertencera a mais de um subconjunto nesta estrutura. Se o empregado for motorista, não é engenheiro, ou seja, a interseção entre os subconjuntos definidos é o conjunto vazio. número c.habilitação data carteira CPF motorista número velocidade editor- preferido digitador número universidade data-formatura engenheiro número nome endereço trabalhador Incompleto, disjuntos A/B A B MODELAGEM DE DADOS 30 ASSOCIAÇÕES: Aprenda mais: número modelo terrestre número velocidade aquatico número potencia lugares veiculo número anfíbio sobreposição,incompleto Aprenda mais Generalizações Completa e Incompleta: Uma restrição simbolizando que uma generalização é completa significa que todas as subclasses já foram especificadas, e não existe mais possibilidade de outra generalização a partir daquele ponto. A generalização incompleta é exatamente o contrário da completa e é assumida como padrão da linguagem. Pessoa MulherHomem {completa} MODELAGEM DE DADOS 31 Outro recurso importante é a associação. Uma associação é um conjunto criado com objetivo de ligar outros dois (ou mais) conjuntos existentes. As classes associadas são representadas por linhas cheias e a classe que as associa é ligada a esta linha cheia por uma linha pontilhada. Toda vez que tivermos um relacionamento de multiplicidade (0..*) para os dois lados do relacionamento deve-se usar a classe associativa. O modelo de classes de objetos é determinista, isto é, devemos saber quem se relaciona com quem, portanto a multiplicidade 1 é obrigatória nos Relacionamentos fora da estrutura associativa. Exemplo: Uma empresa trabalha com projetos. Todo empregado trabalha em um projeto, cada projeto é coordenado por um órgão. O departamento de pessoal precisa saber que dia e hora o empregado entrou e saiu de cada projeto. Faça um modelo de classes que permita fornecer esta informação: Primeiro passo: O modelador inicia identificando os conjuntos existentes: descrição prazo projetos nome matricula salário empregado Tem 0..* 1..N ALOCADO <- RAMAL END ORGA O..N É COORDENADO 1 ÉRESPONSAVEL MODELAGEM DE DADOS 32 Segundo passo: Verifica-se um relacionamento 1..N para 0..*. É um relacionamento não determinista, ou seja, múltiplo, neste caso deve-se fazer uma classe associativa que permite se acrescentar as informações desejadas. Então modelo fica: Observe que ao se estabelecer o subconjunto está se definindo novas propriedades para os elementos do subconjunto, inclusive o nome, então se lê: candidato aprovado, também pode-se dizer que aprovado é um papel do conjunto de candidatos. A identificação do candidato no subconjunto é a mesma do conjunto. Em Modelagem de objetos diz-se que aprovado herdou as propriedades de candidato (matematicamente não é correto, pois o subconjunto tem as propriedades do conjunto principal), mas o termo é devido a uma característica das linguagens de projetos. Pode-se ter subconjuntos de vários tipos de subconjunto. Podemos destacar quantos subconjuntos for necessário para se fazer a análise, assim, se a empresa que está promovendo o concurso tivesse interesse em registrar o peso e a altura das candidatas femininas poderia representar: descrição prazo projetos nome matricula salário empregado Tem 0..* 1..N ALOCADO <- RAMAL END ORGAO O..N É COORDENADO 1 É RESPONSÁVEL ALOCAÇÃO DIA-ENTRADA HORA-ENTRADA HORA-SAIDA DAIDA-SAIDA MODELAGEM DE DADOS 33 Atividade proposta Considere o texto que caracteriza uma descrição de um mundo real para uma empresa. Considere o mundo real abaixo: Um Banco tem diversas agencias identificadas por um código. É importante ter as informações do endereço, telefone Tamanho em metros quadrados de cada agencia. Cada agencia tem sua carteirade clientes. Não há interesse em saber se o cliente tem ou não conta em outra agencias. Do cliente deve-se ter as informações de nome, endereço, CPF. Passamos a ter um cliente quando uma pessoa abre uma conta corrente. Não interessa o numero de contas que o cliente abre. Cada conta é identificada por um número, um gerente responsável, um saldo atual e um saldo médio. Primeiro passo: Analisando o Mundo real descrito, podemos ter algumas dúvidas, e para isto devemos procurar o responsável pela formulação do problema. Em alguns casos temos a liberdade de fazermos algumas suposições, mas que obrigatoriamente devem ser verificadas antes de se seguir adiante. Analisando o problema devemos estabelecer um foco para iniciar o trabalho. No texto qual a intenção de que formulou a questão? Qual o foco da análise? Pode-se divergir um pouco, mas esta reflexão é fundamental para o desenvolvimento do raciocínio. Em minha opinião, como analista, e que pode não coincidir com a sua, o texto foca no controle do cliente ou da conta corrente. Assim vou estabelecer o conjunto inicial, para a qual representarei a classe: cliente nome endereço MODELAGEM DE DADOS 34 Segundo passo: Estabelecer os relacionamentos com conjuntos diretamente ligada à classe identificada. Neste caso foi incluir a classe conta com os seus respectivos relacionamentos: Terceiro passo: Estabeleço os relacionamentos com conjuntos necessários para completar a descrição ou que são necessários para o objetivo focado. No nosso caso falta o conjunto de agencias, tendo em vista que UM banco deseja controlar a s agencias. O conjunto de bancos é desnecessário, tendo em vista que seus dados são inicialmente conhecidos e a aplicação esta sendo desenvolvida para ele. O cliente é da agencia e o meu foco é o cliente, por isto vou relacionar o conjunto de agencias com o conjunto de clientes. Conta corrente Numero Saldo atual Saldo médio Tem É de 1 cliente nome endereço Conta corrente Numero Saldo atual Saldo médio Tem É de 1 cliente nome endereço agencia código endereço telefone É de 1 0 .. N tem 1..n 1 MODELAGEM DE DADOS 35 Pratique você: Considere o mundo real abaixo: A biblioteca da universidade tem um acervo de livros, catalogados por titulo, edição, editora, primeiro autor. Os alunos podem pegar livros nesta biblioteca. Para isto a biblioteca tem registrado a matricula, nome, telefone e CPF de cada aluno. Ao fazer o empréstimo, registra-se o dia da devolução. Faça um modelo de classes que represente a necessidade da biblioteca. Chave de resposta: Considere o mundo real abaixo: A biblioteca da universidade tem um acervo de livros, catalogados por titulo, edição, editora, primeiro autor. Os alunos podem pegar livros nesta biblioteca. Para isto a biblioteca tem registrado a matricula, nome, telefone e CPF de cada aluno. Ao fazer o empréstimo, registra-se o dia da devolução. Faça um modelo de classes que represente a necessidade da biblioteca. Resposta Existem alguns conjuntos, que no processo de modelagem, que se deseja condicioná-los a existência de outros conjuntos. São chamados de conjuntos dependentes. A dependência de conjuntos é uma ferramenta da modelagem. Neste caso o modelador deseja que a identificação do conjunto dependente seja feita a partir do conjunto origem A representação da dependência é por uma linha tracejada. livro titulo edição primeiro autor editora empréstimo titulo matricula data- emprestimo data devolução Tem 0..* 1 é de aluno matricula nome Telefone 0..N tem É de 1 MODELAGEM DE DADOS 36 O diagrama significa que o familiar deve ser identificado a partir da identificação do empregado. Na realidade um objeto dependente só pode ser dependente de um único objeto, por isto é desnecessário a indicação da multiplicidade 1. Exemplo de desenvolvimento usando a dependência. Considere o pedido abaixo: nome parentesco data nascimento registro familiar Matricula nome endereço empregado 1 É de Tem 0..* 1 MODELAGEM DE DADOS 37 Primeiro passo: O objetivo da modelagem é o controle o pedido, portanto, a primeira classe que é o foco da análise já esta definida: Segundo passo: precisamos colocar as informações do item, mas estes itens devem ser identificados a parte do numero do orçamento (decisão de projeto) Aprenda Mais Material complementar Para saber mais sobre Identificação de objetos, leia Modelagem de dados – Wikipédia, a enciclopédia livre, disponível em nossa biblioteca virtual. orçamento cliente endereço orçamento cliente endereço 1 1..N 1 Item de orçamento Numero item quantidade descrição Preço unitário MODELAGEM DE DADOS 38 Referências RIBEIRO, HORACIO. Análise orientada à objetos: da teoria à pratica. editora europa. POMPILHO, severino. Modelagem essencial. IBPI press. HEUSER, C. Projeto de banco de dados. editora armed.Sserie de livro didáticos – 4 série. Exercícios de fixação Questão 1 Com respeito ao nível conceitual para implementação de bancos de dados relacionais normalizados é correto afirmar que: a) As conexões entre tabelas são vistas pelo usuário, na forma de ponteiros. b) Todo o conteúdo de informação é representado de um e somente um modo, ou seja, como valores explícitos de colunas em linhas de tabelas. c) Um relacionamento do tipo N:M implicará em chaves estrangeiras multivaloradas nas tabelas relacionadas. d) Um relacionamento do tipo 1:N implicará em que as chaves do lado N serão chaves estrangeiras multivaloradas na tabela representada pelo lado 1. e) Um relacionamento do tipo 1:1 não pode ser implementado em tabelas relacionais. Questão 2 São elementos da representação de um modelo conceitual de dados: a) Identificador, relacionamento, atributo, entidade. b) Entidade, coluna, índice primário, relacionamento. c) Tabela, coluna, índice primário, relacionamento. d) Entidade, relacionamento, identificador, chave estrangeira. e) Relacionamento, chave estrangeira, índice secundário, índice único. Questão 3 MODELAGEM DE DADOS 39 A captura dos requisitos de dados do mundo real de uma maneira simples e significativa, inteligível ao projetista de banco de dados e ao usuário final, é objetivo: a) Do projeto físico de banco de dados. b) Do projeto lógico de banco de dados hierárquico. c) Da modelagem de dados conceitual. d) Da modelagem lógica de dados em rede. e) Do projeto lógico de banco de dados relacional. Questão 4 Os tipos de cardinalidades possíveis de serem utilizados em um relacionamento entre duas entidades são: a) 2 b) 3 c) 4 d) 5 e) 6 Questão 5 Quanto ao nível de abstração de dados em um sistema de banco de dados, écorreto afirmar que o nível conceitual: a) É o mais alto nível de abstração e descreve apenas parte do BD. b) É o mais baixo nível de abstração e descreve como os dados estão realmente armazenados. c) Descreve quais dados estão armazenados de fato no BD e as relações que existem entre eles. d) Apresenta a descrição detalhada de complexas estruturas de dados de baixo nível. e) É o nível de abstração definido para simplificar a interação do usuário com o sistema, que pode fornecer muitas visões para o mesmo banco de dados. MODELAGEM DE DADOS 40 Questão 06: Considere o diagrama. O relacionamento entre as entidades é interpretado como Departamento Aloca (A) um e somente um Funcionário e um Funcionário É Alocado em um ou muitos Departamentos. (B) um e somente um Funcionário e um Funcionário É Alocado em um e somente um Departamento. (C) um ou muitos Funcionários e um Funcionário É Alocado em um e somente um Departamento. (D) nenhum ou muitos Funcionários e um Funcionário É Alocado em um e somente um Departamento. (E) nenhum ou muitos Funcionários e um Funcionário É Alocado em nenhum ou somente um Departamento. QUESTÃO 07: No diagrama entidade-relacionamento abaixo, CONSULTA tem o papel de funcionario departamento ? 0..N 1 1 0.. N N 1 1 N N 1 MEDICO CONSULTA MEDICAMENTO O 1 M N N PACIENTE MODELAGEM DE DADOS 41 (A) relacionamento genérico. (B) entidade de generalização. (C) entidade fraca. (D) relacionamento de especialização. (E) entidade associativa. QUESTAO 08: Considere as afirmativa abaixo: I –Uma associação deve ser usada sempre que se identificara um relacionamento do tipo 0..N para 0..N,ou seja, não seja determinista. II –Pode-se representar mais de um particionamento. Para cada tipo de particionamento pode-se ter grupos de subconjuntos diferentes, III –Pode-se representar um subconjunto e este pode ser dividido em outros subconjuntos dependendo das necessidades da análise. Segundo a teoria apresentada, quais estão totalmente certas< a) Somente I e II b) Somente II e III c) Todas estão corretas d) Somente II e III e) Todas estão erradas Questão 09: Considerando o conteúdo teórico apresentado neste trabalho assinale a opção correta: a) Quando se tem uma estrutura em que se define um sub conjnto acrescenta- se novas propriedades que são usadas no subr conjunto, porém, o identificar do subconjunto é o mesmo do conjunto. B) o relacionamento não determinista, do tipo 0..N para 0..N deve ser priorizado, pois cria informação sobre os elementos do conjunto MODELAGEM DE DADOS 42 c) Um subconjunto só pode ser usado para determinar outros conjuntos e não deve ser usado em associações. d)Uma estrutura de associação deve ser evitada, pois exigem mais arquivos e desta forma limitam a forma de usar o sistema. e) Nenhuma das afirmativas está correta. Questão 10: Considere o diagrama abaixo: Sobre ele, segundo a teoria tratada neste trabalho, escolha a opção correta. a) Segundo o diagrama podemos criar um conjunto a partir do conjunto Aluno_matriculado, porém conceitualmente não é possível considerar Aluno_aprovado como subconjunto de turma. b) Segundo o diagrama pode-se representar a partir do conjunto turma o sub conjunto Aluno_matriculado e deste o subconjunto Aluno_aprovado. c)Segundo o diagrama pode-se modelar uma estrutura associativa chamada turma que associa os elementos dos outros conjuntos. d)Segundo o diagrama deve-se fazer um conjunto chamado turma e aluno aprovado é um conjunto dependente. Aluno aprovado é dependente de aluno matriculado e)Todos os três conjuntos devem ser considerados como primários deve-se apenas estabelecer os relacionamentos. Aluno aprovado Aluno matriculado turma MODELAGEM DE DADOS 43 Aula 2 Exercícios de fixação Questão 1 - B Justificativa: Todas as outras respostas se referem à implementação do modelo conceitual, sendo B apenas a que trata o modelo conceitual. Questão 2 - A Justificativa: As opções B, C, D e E possuem pelo menos um elemento que é do modelo lógico e apenas a opção a apresenta todos os termos usados na modelagem conceitual. Questão 3 - A Justificativa: Um requisito acontece em um recorte do mundo real que se deseja modelar, assim a partir dos requisitos podem-se identificar as imagens geradas a partir da análise dos requisitos. Questão 4 - C Justificativa: São 4 os tipos de cardinalidade para um relacionamento (1, 0..1, 1..n, o..n) Questão 5 - C Justificativa: A opção A está errada pois na abstração não se descreve parte do banco de dados, A opção B está errada, pois a forma de armazenamento é definida no momento lógico. A opção C está correta pois a abstração define os dados e relações que são armazenadas. A opção D está errada, pois a abstração não trata estruturas de dados de baixo nível. MODELAGEM DE DADOS 44 A opção E esta errada pois a abstração não trata intenções Questão 6 - D Justificativa: O relacionamento tem uma associação. Deve-se analisar o elemento da associação com relação a empregados e departamentos. A opção D diz que zero ou mais funcionários estão na associação. E todos os elementos da associação estão ligados ao conjunto de departamentos. Questão 7 - E Justificativa: O conjunto é associativo, independente dos conjuntos formadores, pois a cardinalidade do relacionamento indica que cada elemento da associação tem uma referência para os formadores. Questão 8 - C Justificativa: A afirmativa I está correta porque a modelagem deve ser determinista. Ou seja, deve-se identificar quem se relaciona com quem. A afirmativa II coloca que pode-se criar categorias de subconjuntos. A afirmativa III e uma complementação da anterior. Questão 9 - A Justificativa: O elemento do subconjunto existe no conjunto e ele já teve seu identificador definido, portanto, deve ser o mesmo a ser usado no subconjunto. A opção B está errada pois deve se evitar relacionamentos do tipo 0..n. para 0n. Questão 10 - A Justificativa: A afirmativa está certa, não é possível gerar um subconjunto a partir do conjunto turma, pois são de naturezas diferentes. São coisas com propriedades totalmente diferentes.
Compartilhar