A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelos de Dados Álvaro Vinícius de Souza Coêlho

Apresentações semelhantes


Apresentação em tema: "Modelos de Dados Álvaro Vinícius de Souza Coêlho"— Transcrição da apresentação:

1 Modelos de Dados Álvaro Vinícius de Souza Coêlho

2 Modelos de Dados Um BD provê abstração de dados (o seu esquema). O modelo de dados é a principal ferramenta de abstração. É um conjunto de conceitos que são usados para descrever a estrutura de um BD (Tipos de Dados, Relacionamentos, Restrições Semântica, etc.).

3 Modelos de Dados De modo geral há três níveis de classificação do modelo de dados: Objetos, Registros e Físico. O modelo baseado em objetos é o mais abstrato. –Não confundir com Orientação a Objetos. –Voltado para a compreensão e o significado dos dados.

4 Modelos de Dados O modelo baseado em objetos é o mais abstrato. –Expressam relacionamentos complexos entre os dados. –Mostram o mundo real em toda a sua complexidade (de dados). –Ignoram aspectos relacionados à implementação.

5 Modelos de Dados O modelo baseado em objetos é o mais abstrato. –Modelo de Entidades e Relacionamentos – uma coleção de entidades (objeto distinguível de outro pelos seus atributos) e relacionamentos (associação entre várias entidades). Definido na Engenharia de Informação e muito empregado na modelagem Estruturada (e mesmo na modelagem Orientada a Objetos).

6 Modelos de Dados O modelo baseado em objetos é o mais abstrato. –Modelo Conceitual – Coleção de classes de objetos, com atributos e métodos, e associações entre elas. As associações podem ser por mensagens (um objeto solicita algo a outro) ou por ocorrência (um objeto tem a ocorrência de – se relaciona a – outro). Definido nas modelagens orientadas a objetos e empregado em UML.

7 Modelos de Dados O modelo baseado em objetos é o mais abstrato. –Existem outros modelos, tanto estruturados quanto orientados a objeto. Mas expressam as mesmas características.

8 Modelos de Dados Modelo baseado em registros –Construído a partir do modelo de objetos. –Voltados para o entendimento dos registros dos dados. –Expressam relacionamentos simples entre os dados. –Não representam fatos complexos.

9 Modelos de Dados Modelo baseado em registros –Dependentes da arquitetura do BD: Voltados para a implementação. –Diagrama Relacional, para o modelo relacional, representando dados e relacionamentos por um conjunto de tabelas com colunas únicas (chave).

10 Modelos de Dados Modelo baseado em registros –Diagrama Relacional C CT# C# ClienteConta C#

11 Modelos de Dados Modelo baseado em registros –Diagrama de estrutura de dados, para o modelo em redes, tem os dados representados por coleções de registros e os relacionamentos são representados por ligações (ponteiros). O BD é organizado como uma coleção de grafos.

12 Modelos de Dados Modelo baseado em registros –Diagrama de estrutura de dados ClienteConta Número Saldo NomeRua Cidade

13 Modelos de Dados Modelo baseado em registros –Diagrama de estrutura, para o modelo hierárquico, com representação similar ao modelo de redes, porém o BD é organizado como coleções de árvores.

14 Modelos de Dados Modelo baseado em registros –Diagrama de estrutura Cliente Conta NomeRua Cidade Número Saldo

15 Modelos de Dados Modelo Físico, que é a visão propriamente dos dados (exemplos, evidentemente). Os modelos em registros físicos são parte integrante de um estado específico do projeto do BD.

16 Modelos de Dados Aqui, ater-nos-emos ao modelo de objetos. Existem regras precisas que permitem que, a partir do modelo de objetos, sejam gerados o modelo de registros e o modelo físico do BD. Mas tal transformação é de pouco interesse.

17 Modelos de Dados Vai-se tomar por guia o MER (Modelo de entidades e relacionamentos). Não há nenhum motivo em especial, –O interesse é estudar a modelagem de dados –O Modelo Conceitual da UML (bem como todos os modelos de classes em Orientação a Objeto) é mais amplo –Engloba os métodos e as conexões de mensagens que não são escopo de uma modelagem de dados.

18 Modelos de Dados Assim, entre estudar um modelo conceitual incompleto, por abstração dos métodos, e um MER integral, optou-se pela segunda alternativa. Vale a crítica: Modernamente há uma preferência pelo modelo conceitual de classes, mas em muitos tipos de sistemas (principalmente quando o BD é relacional) o MER é ainda muito empregado.

19 Modelos de Dados No decorrer desta será mostrado, sempre que surgirem, as semelhanças e equivalências do MER com o modelo conceitual. O principal: Os conceitos de organização dos dados e as estratégias para o estabelecimento de relações (ou associações) entre eles permanece.

20 Modelos de Dados O que é um MER. –Um diagrama composto por entidades e relacionamentos

21 Modelos de Dados O que é um MER. –Um MER possui quatro aspectos principais a serem estudados Tipos de objetos (ou classes, segundo a UML). Relacionamentos (ou associações, segundo a UML). Indicadores associativos de tipos de objetos (ou classe associativa, segundo a UML). Indicadores de supertipos/subtipos (superclasse/ subclasse, segundo a UML).

22 Modelos de Dados Os tipos de objetos, num MER, são representados por retângulos. –Cada tipo de objeto exerce um papel, isto é, são relevantes para o funcionamento do próprio sistema. –São descritos por um ou mais elementos de dados, chamados atributos (como no Modelo Conceitual).

23 Modelos de Dados Os tipos de objetos, num MER, são representados por retângulos. –Por exemplo, um objeto cliente pode ter os atributos Nome, Endereço, Limite de Crédito e Telefone. –Os atributos são os descritores de cada instância do tipo de objeto (ou o objeto propriamente dito, segundo a UML).

24 Modelos de Dados Os tipos de objetos, num MER, são representados por retângulos. ClienteConta

25 Modelos de Dados Os tipos de objetos, num MER, são representados por retângulos. –A colocação ou não dos atributos é opcional Diferentes autores preconizam diferentes procedimentos (mesmo em UML, de acordo com o nível de abstração necessário pode-se suprimir alguns ou todos os atributos). Aqui, por uma questão de simplicidade, serão omitidos do modelo.

26 Modelos de Dados Os tipos de objetos, num MER, são representados por retângulos. –Mas o levantamento cuidadoso dos atributos é imperativo à modelagem de dados –Que informações desta entidade (ou desta classe) o sistema deverá, ainda que numa eventualidade, se recordar?.

27 Modelos de Dados Os tipos de objetos, num MER, são representados por retângulos. –Isso leva a um conjunto bastante razoável de atributos. –O próprio decorrer do processo de modelagem vai desvendar novos atributos, inicialmente esquecidos. –Não obstante, o seguinte questionamento também deve ser feito para cada atributo descoberto: Essa informação precisa estar registrada ou pode ser derivada de alguma outra?.

28 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –Um relacionamento expressa um conjunto de conexões entre objetos. –Pode representar uma relação entre zero ou mais ocorrências de um objeto, e zero ou mais ocorrências de outro objeto.

29 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –O nome do relacionamento é uma palavra que indique a relação que de fato existe entre os objetos relacionados. –Deve ser colocado no interior do losango.

30 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. ClienteConta Possui

31 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –Pode haver mais de um relacionamento entre objetos: Cliente Conta Possui Movi- menta

32 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –Pode, também, haver relacionamentos entre mais de um objeto. ClienteConta Possui Agência

33 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –Cardinalidade e opcionalidade. –Um relacionamento deve mostrar: As quantidades que podem estar envolvidas A opcionalidade ou não de haver objetos relacionados nas extremidades do relacionamento.

34 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –De modo geral, encontra-se 3 tipos de cardinalidade 1 para 1. –Cada instância de tipo de objeto se relaciona com apenas uma instância do outro e vice-versa. –Representa-se escrevendo o número 1 ao lado de ambos os objetos relacionados.

35 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. 11 Cliente Conta Possui

36 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –Essa relação é lida: Um cliente possui apenas uma conta e uma conta pertence a (é possuída por) apenas um cliente.

37 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –1 para Muitos –Uma instância de um objeto se relaciona com várias ocorrências do outro, mas a recíproca não é verdadeira.

38 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. 1N Cliente Conta Possui

39 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –Representa-se escrevendo o número 1 do lado do objeto cuja instância ocorre uma vez (chamado dominante) e N do outro lado –Esta relação é lida: Um cliente pode possuir muitas contas, mas uma conta pertence a apenas um cliente.

40 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –Muitos para Muitos –Cada ocorrência de um objeto se relaciona com várias ocorrências do outro e vice-versa. –Representa-se escrevendo N ao lado dos dois.

41 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. NN Cliente Conta Possui

42 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –Esta relação é lida como: Um cliente pode possuir muitas contas e uma conta pode pertencer a muitos clientes.

43 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –A opcionalidade (ou obrigatoriedade, a depender do autor) Eventualmente, um objeto só pode existir se o seu par-relacionado também existir. Isso pode ser verdade para ambos os lados de um relacionamento, ou só para um deles, ou para nenhum dos dois.

44 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –No exemplo de clientes e contas, pode-se estabelecer que um cliente só possa estar cadastrado no BD se ele possuir ao menos uma conta. Isso, porém, pode não ser boa idéia. Por outro lado, não é admissível o registro de uma conta sem que se saiba o seu titular. Aqui parece mais razoável impor uma obrigatoriedade.

45 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –O relacionamento pode ser lido da seguinte forma: Um cliente pode possuir zero ou mais contas, mas uma conta deve pertencer a um ou mais clientes

46 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –A opcionalidade é representada por um círculo colocado ao lado do objeto relacionado, se ele não for obrigatório.

47 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. NN Cliente Conta Possui

48 Modelos de Dados Os relacionamentos, no MER, são representados por losangos. –Existem, de acordo com diferentes autores, muitas formas diferentes de representar a cardinalidade e a opcionalidade. –Esta é apenas uma delas, escolhida por apresentar maior semelhança com a linguagem natural e requerer menos recursos gráficos.

49 Modelos de Dados Os indicadores de tipos de objeto associativos aparecem quando surgem objetos que funcionam como relacionamento –São relacionamentos sobre os quais é desejável guardar alguma informação –Na notação que apresenta os atributos, é suficiente coloca-los no relacionamento. – Aqui, entretanto, será utilizado outro mecanismo.

50 Modelos de Dados Os indicadores de tipos de objeto associativos –Imagine-se um relacionamento muitos para muitos entre clientes e itens, chamado Compra. –Agora, percebe-se que há alguns atributos específicos deste relacionamento (Data, Tipo de pagamento...) que precisam ser guardados pelo sistema.

51 Modelos de Dados Os indicadores de tipos de objeto associativos –O Tipo de Dados Compra, associado ao relacionamento Compra é então criado da seguinte forma N ClienteItem N Compra

52 Modelos de Dados Os indicadores de tipos de objeto associativos –Esta notação é dotada de uma semântica muito particular, pois mostra que o relacionamento também é um tipo de objeto –O relacionamento ficou sem nome, indicando que toda a informação que ele contém está inclusa no tipo de objeto Compra

53 Modelos de Dados Os indicadores de tipos de objeto associativos –Quando se implementa relações muitos para muitos em bancos de dados relacionais, usa-se uma tabela (também conhecida como tabela de-para) fazendo às vezes da relação. –Esta tabela traz as chaves primárias das duas tabelas que representam as entidades para formar a relação da maneira apropriada.

54 Modelos de Dados Os indicadores de tipos de objeto associativos –É importante ressaltar que tal artifício é feito em nível de projeto, no modelo de registros, e não deve ser expresso aqui. –Chaves primárias e estrangeiras, por não serem considerados atributos (são apenas mecanismos de construção de relacionamentos) devem ser desconsideradas. Não se tratará, portanto, de um tipo de objeto associativo.

55 Modelos de Dados Os indicadores de supertipos/subtipos são objetos que se agrupam em uma ou mais subcategorias. –No MER são interligados por um relacionamento –No modelo conceitual, são ligados por generalização

56 Modelos de Dados Os indicadores de supertipos/subtipos –O modelo conceitual estabelece explicitamente que subclasses tem uma relação de herança com as classes-mãe. –O MER também incorpora o conceito de herança, embora não preveja a herança de métodos, como o modelo conceitual.

57 Modelos de Dados Os indicadores de supertipos/subtipos –Recomenda-se que na nomenclatura do subtipo também se faça uma alusão ao fato de se tratar de uma especialização de um tipo adicional. –Por exemplo, havendo um tipo para automóveis, e subtipos para os automóveis de passeio e utilitário, podem-se nomear esses tipos, respectivamente: Automóvel, Automóvel Passeio e Automóvel Utilitário.

58 Modelos de Dados Os indicadores de supertipos/subtipos –Os supertipos se relacionam com os subtipos, e a identificação do tipo-pai é feita com um traço cortando a linha de relação que parte do supertipo

59 Modelos de Dados Os indicadores de supertipos/subtipos Empregado Horista Empregado Assalariado Empregado

60 Modelos de Dados Os indicadores de supertipos/subtipos –Subtipos e supertipos são identificados são identificados pelos seus atributos –No exemplo, Nome, Endereço, Telefone e Data de Nascimento são atributos de todos os objetos do tipo Empregado

61 Modelos de Dados Os indicadores de supertipos/subtipos –Mas Horas_Trabalhadas e Salário_Hora são atributos que dizem respeito apenas a objetos do tipo Empregado Horista –Salário_Mês é atributo que só faz sentido ao empregado assalariado

62 Modelos de Dados Os indicadores de supertipos/subtipos –No processo de modelagem, se for percebida uma intersecção entre os conjuntos de atributos de dois (ou mais) tipos de objetos distintos, eles são então candidatos a compor um conjunto subtipo/supertipo.

63 Modelos de Dados Os indicadores de supertipos/subtipos –Os objetos em estudo vão se alinhar como subtipos –Devem ser suprimidos os atributos em comum, restando apenas os atributos disjuntos

64 Modelos de Dados Os indicadores de supertipos/subtipos –O supertipo deverá ser criado, contendo estes atributos comuns –Estes atributos, portanto, ficam disponíveis para todos os subtipos, por herança

65 Modelos de Dados Os indicadores de supertipos/subtipos –Aqui fica a mais importante diferença entre o MER e o Modelo Conceitual –No MC a relação de classes/subclasses pode ser estabelecida pelo compartilhamento de atributos ou métodos –No caso dos atributos de maneira bem semelhante ao MER.

66 Modelos de Dados Os indicadores de supertipos/subtipos –A diferença é que nos métodos pode-se implementar conceitos de polimorfismo –São escopo de um estudo sobre orientação a objetos já que os métodos são processos, extrapolando, portanto a modelagem de dados

67 Modelos de Dados Erros comuns –A modelagem de dados é uma tarefa feita em várias etapas, todas aperfeiçoando a anterior. –É comum, e até natural, descobrir-se imperfeições e erros no modelo, e partir-se para as correções apropriadas.

68 Modelos de Dados Erros comuns –Não há um modelo correto para um sistema. Há modelos adequados ou inadequados –Os erros mais comuns são basicamente de duas categorias: Faltou objeto ou Sobrou objeto

69 Modelos de Dados Erros comuns –Faltou objeto A identificação de supertipos a partir de subtipos com atributos em comuns pode ter sido falha. É muito comum, em entrevistas com usuário ou em documentações utilizadas como insumo de análise, encontrar objetos aparentemente distintos que são na verdade especialização de um supertipo.

70 Modelos de Dados Erros comuns –Faltou objeto A identificação de casos especiais de tipos, que tenham atributos, quebrando em subtipos É comum, também, não se perceber a princípio que um determinado tipo de objeto possui uma especialização relevante para o sistema, o que forçaria este objeto a ser dividido em subtipos

71 Modelos de Dados Erros comuns –Faltou objeto –Ex: –Um analista percebe a existência do tipo de objeto Cliente, e não observa que existem atributos específicos do cliente que compra com cartão de crédito e que compra com dinheiro –Outro pode perceber dois objetos distintos, um cliente que faz compras com cartão e outro (um comprador) que faz compras a dinheiro. –Ambos cometeram uma falha.

72 Modelos de Dados Erros comuns Cliente Cartão Cliente Dinheiro Cliente Cliente Cartão Comprador Dinheiro Cliente

73 Modelos de Dados Erros comuns –Faltou objeto –Percepção de atributos inerentes a um relacionamento, que não chamaram a atenção numa vista preliminar.

74 Modelos de Dados. FIM! A ciência não tem Pátria Louis Pasteur Mas as patentes, sim Anômimo Di Cavalcanti


Carregar ppt "Modelos de Dados Álvaro Vinícius de Souza Coêlho"

Apresentações semelhantes


Anúncios Google