Modelos de Dados
Álvaro Vinícius de Souza Coê[email protected]
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.).
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.
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.
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).
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.
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.
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.
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).
Modelos de Dados
• Modelo baseado em registros– Diagrama Relacional
CCT#
C#
Cliente ContaC# C#
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.
Modelos de Dados
• Modelo baseado em registros– Diagrama de estrutura de dados
Cliente Conta
Número SaldoNome Rua Cidade
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.
Modelos de Dados
• Modelo baseado em registros– Diagrama de estrutura
Cliente
Conta
Nome Rua Cidade
Número Saldo
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.
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.
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.
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.
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.
Modelos de Dados
• O que é um MER.– Um diagrama composto por entidades e
relacionamentos
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).
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).
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).
Modelos de Dados
• Os tipos de objetos, num MER, são representados por retângulos.
Cliente Conta
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.
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?”.
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?”.
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.
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.
Modelos de Dados
• Os relacionamentos, no MER, são representados por losangos.
Cliente ContaPossui
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
Modelos de Dados
• Os relacionamentos, no MER, são representados por losangos.– Pode, também, haver relacionamentos entre
mais de um objeto. Cliente Conta
Possui
Agência
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.
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.
Modelos de Dados
• Os relacionamentos, no MER, são representados por losangos.
1 1Cliente ContaPossui
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”.
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.
Modelos de Dados
• Os relacionamentos, no MER, são representados por losangos.
1 NCliente ContaPossui
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”.
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.
Modelos de Dados
• Os relacionamentos, no MER, são representados por losangos.
N NCliente ContaPossui
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”.
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.
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.
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”
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.
Modelos de Dados
• Os relacionamentos, no MER, são representados por losangos.
N NCliente ContaPossui
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.
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.
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.
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
NCliente Item
N
Compra
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
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.
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.
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
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.
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”.
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
Modelos de Dados
• Os indicadores de supertipos/subtipos
Empregado Horista
Empregado Assalariado
Empregado
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
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
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.
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
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
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.
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
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.
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
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.
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
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.
Modelos de Dados
• Erros comuns
Cliente Cartão
Cliente Dinheiro
Cliente
Cliente Cartão
Comprador Dinheiro
Cliente
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.
Modelos de Dados.
FIM!
“A ciência não tem Pátria”Louis Pasteur
“Mas as patentes, sim”Anômimo
Di Cavalcanti