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:
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:
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 |