Pedro Silva
Fernando Mourão



Objectos Semânticos


O modelo de objectos semânticos, tal como o modelo E-R, é um instrumento de análise e design de bases de dados. Ambos fornecem uma metodologia para estruturar os dados e as relações entres os dados.

Um objecto semântico define-se como uma colecção de atributos que só por si descreve uma entidade distrinta (note-se que entidade não tem o mesmo sentido de entidade em E-R).

Estes atributos são os dados referentes ao objecto semântico que se pretende armazenar na base de dados, pode-se dizer, de um modo restrito, que correspondem aos atributos de uma entidade no modelo E-R.

A informação relativa a um objecto semântico está toda contida na sua representação ao contrário da entidade no modelo E-R que normalmente não chega para caracterizar um conjunto de dados.

Uma instância de um objecto semântico é um conjunto de dados unívoco de um objecto semântico. Isto é, se o objecto representar os dados de um aluno da U.C. uma instância desse objecto são os dados do aluno com o número 9101788.

Atributos

Existem três tipos de atributo:

  1. Atributo Simples. Atributos simples tomam apenas um valor. Tais como BI, nome, telefone
  2. Atributo Grupo. Atributos que são compostos por um conjunto de outros atributos. Por exemplo Endereço que é composto por {rua,localidade, código postal}.
  3. Atributo Objecto Semântico. Atributos que estabelecem a relação entre dois objectos semânticos. Esta relação tem que ser bilateral, isto é, se um objecto A contém um atributo objecto B, então o objecto B contém um atributo objecto A. Mesmo que a relação entre os objectos semânticos seja num só sentido a representação faz-se em par, cada objecto tem um atributo objecto semântico referente ao outro objecto.

Estes tipos de atributos estão exemplificados no exemplo seguinte que ilustra uma ficha de um paciente de um consultório dentista.

O nome do objecto fica no topo e é escrito em letras maiúsculas, os atributos que não são atributos objecto são escritos em letra minúscula e os atributos objecto tal como os objectos são escritos em letras maiuscúlas mas estão contidos numa caixa.

Cardinalidade dos Atributos

A cardinalidade de um atributo representa o número de instâncias que esse atributo pode ter para uma instância do objecto a que pertence. Esta informação é colocada à frente de cada atributo e tem o formato n.m em que n é a cardinalidade mínima e m a cardinalidade máxima. A cardinalidade mínima representa o número mínimo de instâncias que o atributo tem que ter e a cardinalidade máxima representa o número máximo de instâncias que este pode ter. Por exemplo, na figura em cima o atributo Bi tem que ter uma e uma só instância para cada instância do objecto, enquanto que o atributo Telefone pode não ter uma instância ou pode ter várias. É de notar que se estivessemos a trabalhar no modelo E-R teriamos o telefone como uma entidade distinta.

Quando o atributo é de grupo cada atributo que o compõe tem uma cardinalidade e o grupo todo tem a sua cardinalidade que é independente da cardinalidade dos seus constituintes.

Identificadores

O ou os atributos que identifiquem o objecto são identificados com o identificador id antes do nome e chamam-se identificadores de objecto. Estes identificadores têm, salvo raras excepções, cardinalidade 1.1. Se este id estiver sublinhado quer dizer que o atributo não pode ter duas instâncias repetidas, à semelhança da chave primária no modelo E-R.

Quando o identificador é composto por mais do que um atributo denomina-se identifcador de grupo.

Domínios

O domínio de um objecto é o conjunto de valores que este pode tomar. Este é composto por uma parte física e outra semântica. A parte física corresponde ao tipo de dados, por exemplo, o Nome é uma string de 15 caracteres, o Bi é um inteiro com 10 digitos. A parte semântica descreve o significado do atributo: Nome é o nome do paciente, SistemaSaúde é o sistema do qual o paciente beneficia de comparticipação na saúde.

Vistas

Uma vista é semelhante às vistas como se conhece no modelo E-R. Uma vista possível para o objecto PACIENTE é:

Tipos de Objectos Semânticos

Os objectos semânticos dividem-se em sete tipos:

  1. Objecto Simples - o objecto contém apenas atributos univalor, ou seja, cuja cardinalidade máxima é 1 e que não sejam atributos objecto.
  2. Objecto Composto - o objecto é constituído por um ou mais atributos que têm cardinalidade máxima superior a 1, também denominados atributos multivalor.
  3. Objecto Complexo - o objecto contém pelo menos um atributo objecto.
  4. Objecto Híbrido - os constituintes do objecto são combinações de dois tipos de objecto, o composto e o complexo.
  5. Objecto de Associação - este objecto estabelece a ligação entre dois ou mais objectos, ele contém atributos que são relativos à relação dos objectos e os atributos objectos a que faz de elo de ligação.
  6. Objectos Supertipo/Subtipo - estes tipos de objecto são semelhantes às entidades de superclasse/subclasse do modelo modelo E-R, pois o objecto subtipo (tal como a entidade da subclasse) herda todos os atributos do objecto supertipo.
  7. Objectos Arquétipo/Versão - o objecto arquétipo produz, ou derivam deste, outros objectos semânticos que representam versões ou edições do arquétipo.

A Transformação de Objectos em Tabelas


A tranformação dos sete tipos de objectos em tabelas rege-se pelos seguintes métodos:

Objectos Simples


Os objectos simples geram uma tabela com todos os seus atributos:

COMPUTADOR{Id_Computador,Nome, Processador,Memória,Disco,SisOperativo}

Equivale a uma entidade no modelo E-R

Objectos Compostos


PESSOA { Bi, Nome}

Morada{ Bi, Rua, Localidade, CodigoPostal }

Telefone {Bi, NumTelefone}

 

Estes objectos geram uma tabela para o objecto e uma por cada atributo multivalor.

Esta representação é semelhante à do modelo E-R com atributos compostos mas torna-se mais genérica, uma vez que em E-R o atributo telefone teria que ser uma entidade distinta. Entidade esta que teria uma relação 1:N com a entidade pessoa.

Objectos Complexos

As relações entre objectos, tal como no modelo E-R podem ser: 1-1, 1-N e M-N.

As regras a aplicar são as seguintes:

Relação de um para um


Este tipo de relação gera uma tabela para cada objecto:

COMPUTADOR{Id_Comp, Nome, Dono,Local}

DONO {Dono, Contacto, Localização}

Relação de um para N


Como já referimos as relações entre objectos são representadas em par mas o modo como um objecto se relaciona com o outro não é exactamente igual. Neste caso, como se vê no exemplo um equipamento pode ser reparado muitas vezes, mas uma reparação refere-se a um e um só equipamento. Note-se que a cardinalidade de reparação é 0.N mas isto só implica restrições de integridade.

Desta relação surgem somente duas tabelas:

EQUIPAMENTO {NumeroSerie, Tipo, Modelo, DataAquisição, Preço, Localização}

REPARAÇÃO {NmRequisição, Data, Descrição, Preço, NumeroSerie}

Relação de M para N


Desta relação surgem, tal como no modelo E-R, 3 tabelas:

ALUNO {NumAluno, Nome, Morada, Telefone}

CADEIRA {Nome, DocenteTeorica, DocentePractica, Programa}

ALUNO_CADEIRA_INT {NumAluno, NomeCadeira}

Objectos Híbridos

Para estes objectos basta conjugar os resultados das relações para objectos compostos e objectos complexos.

Objectos Associação



As tabelas são 3, tal como os objectos:

CONDUTOR {BI, Nome, Morada Telefone}

VEÍCULO {Matricula, Marca, Modelo, DataAquisição}

FRETE {NumRequisição, Data, Origem, Destino, Km, Bi, Matricula}

Objectos SuperTipo/SubTipo


Tal como no modelo E-R este tipo de relação dá origem a vários conjuntos de tabelas:


EMPREGADO {NumContrib, Nome, Morada, Telefone}

MONITOR {NumContrib, TelGabinete, Gabinete, AreaMonitor}

RECEPCIONISTA {NumContrib, Recepção, Horário, Folga }

 

Mas este conjunto obriga a que se consulte as tabelas monitor e recepcionista para saber o que é que um empregado faz.

A seguinte opção altera somente a tabela empregado:

 

EMPREGADO {NumContrib, Nome, Morada, Telefone, Função}

 

O campo função terá a função do empregado, que neste caso será "monitor", "recepcionista" ou "nada" caso se determine que podem haver funções que não monitor e recepcionista.

A ultima proposta pressupõe que o empregado ou é monitor ou recepcionista.

 

EMPREGADO {NumContrib, Nome, Morada, Telefone, Recepcionista, Monitor}

 

Os campos recepcionista e monitor são campos booleanos, assim um monitor terá o campo Monitor com o valor "verdadeiro" e o campo recepcionista o valor "Falso"

A interpretação e escolha do conjunto de tabelas segue exactamente o mesmo raciocionio que se usa no modelo E-R.

Objectos Arquétipo/Versão

PRODUTO {Nome, Descrição, TotalVendas}

VERSÃO {Nome, NumVersão, DataLançamento, NumCopias}

Este tipo de objectos trata-se de um caso particular dos objectos híbridos mas uma vez que o modelo de objectos semânticos é um modelo orientado para o ponto de vista do utilizador este tipo de objectos são bastante uteis.

Caso Práctico:

Consultório Dentário


Modelo E-R



Modelo Objectos Semânticos



Este trabalho já foi estudado segundo o modelo E-R, cujo diagrama está apresentado antes do diagrama de objectos semânticos.

Apesar de acharmos mais fácil a concepção dos diagramas temos que reconhecer que o tema já tinha sido muito aprofundado o que nos permitiu tomar certas decisões com maior facilidade.

Existe mesmo assim um ponto onde fica a dúvida se a opção estará correcta. Essa dúvida diz respeito à parte tratada num tratamento. O tratamento pode ser efectuado a uma parte de um dente ou ao dente todo. Quando é aplicada ao dente todo o atributo parte_dente não deve existir. Mas quando se trata uma parte essa parte pertence a um dente. Esta relação de pertença da parte está representada também no objecto parte_dente, mas admitimos a possiblidade de esta poder estar duplicada no tratamento para simplificar. Este pormenor de exclusão assemelha-se ao caso de objectos Supertipo/Subtipo, mas do ponto de vista do objecto tratamento a parte e o dente não são sub-tipos.

Conclusão

Não conseguimos decidir qual dos dois modelos seria o melhor. Achamos que se trata principalmente de uma questão de opção pessoal.

No que nos diz respeito a nós pensamos que se a base de dados a conceber tiver uma componente de apresentação forte ou se a estrutura a informatizar tiver muitos relatórios, requisições e elementos deste tipo para serem armazenados numa base de dados então o modelo de objectos semânticos é uma boa opção. Mas note-se que cada caso é um caso e mesmo que tenha as caracteristicas por nós descritas é bem possível que uma determinada estrutura seja mais fácil de descrever no modelo E-R.

Fica então ao critério de cada um decidir o que mais lhe interessar ou gostar.


Comentários, críticas, sugestões, etc.:
elson@student.dei.uc.pt

Última Actualização: 29/10/1997