• Nenhum resultado encontrado

2 REVISÃO DA LITERATURA

2.4.5 Modelo de dados EER 1 Introdução

Os conceitos do modelo de dados ER permitem que sejam elaborados modelos conceituais para vários tipos de aplicações de bancos de dados. Entretanto, muitas aplicações de bancos de dados modernas, como projetos de engenharia, multimídia, sistemas de informações geográficas, bases de conhecimento para aplicações de inteligência artificial e sistemas de arquivamento e comunicação de imagens médicas, requerem conceitos semânticos adicionais para que seja possível criar modelos do minimundo com maior precisão.

Muitos modelos de dados semânticos foram propostos na literatura, entre eles, vários modelos que utilizam orientação a objetos, que são atualmente os mais populares. Os conceitos mais importantes foram incorporados ao modelo ER

resultando no modelo Entidade-relacionamento Estendido (EER - Enhanced Entity- relationship). Além de todos os conceitos do modelo de dados ER, o modelo EER inclui os conceitos de subclasse e especialização, superclasse e generalização, categoria, e herança de atributos. Estes conceitos são rapidamente descritos a seguir, bem como as respectivas notações gráficas que compõem os diagramas do modelo EER.

2.4.5.2 Conceitos básicos

Como visto anteriormente, um tipo de entidade é usado para representar entidades do mesmo tipo, mas, em muitos casos, as entidades de um tipo de entidade podem pertencer a subgrupos menores que precisam ser representados no esquema do banco de dados. Estes subgrupos são chamados de subclasses do tipo de entidade, enquanto a classe mais geral que agrega as subclasses é chamada de superclasse. As entidades que fazem parte de subclasses são as mesmas entidades do mundo real que fazem parte da correspondente superclasse, mas elas exercem, em cada subclasse, um papel específico. Note que uma entidade não pode existir no BD apenas sendo membro de uma subclasse, ela precisa ser membro da superclasse também. Já uma entidade que é membro de uma superclasse não precisa ser obrigatoriamente membro de alguma de suas subclasses.

O relacionamento entre uma superclasse e uma de suas subclasses é chamado de relacionamento superclasse/subclasse.* Ao contrário dos tipos de relacionamento

mencionados anteriormente, que associavam entidades distintas, o relacionamento superclasse/subclasse associa as mesmas entidades do mundo real.

Um conceito importante relacionado às subclasses é a herança de atributos. Como as entidades das subclasses são as mesmas entidades do mundo real que compõem a superclasse, além dos valores para os seus atributos específicos, elas também possuem os valores dos seus atributos como membro da superclasse. Uma entidade de uma subclasse também herda todas as instâncias de relacionamento dos tipos de relacionamento nos quais a superclasse participa.

* O relacionamento subclasse/superclasse também é chamado de relacionamento É-UM ou É-UMA,

Existem duas razões básicas para se incluir estruturas superclasse/subclasse em um modelo de dados. O primeiro é que certos atributos muitas vezes só fazem sentido para subgrupos de entidades da superclasse e não para todas as entidades. Para se resolver este problema, basta definir uma subclasse com estes atributos especiais. Desta forma, os membros da subclasse irão compartilhar os atributos comuns com os outros membros da superclasse enquanto possuem seus próprios atributos. A segunda motivação para a utilização de subclasses é que, para determinados tipos de relacionamento, apenas um grupo de entidades podem participar, o que também pode ser resolvido com a utilização de uma subclasse.

Relacionado com os conceitos de superclasse e subclasse existem os conceitos de especialização e generalização. A especialização é o processo de definir subclasses de um dado tipo de entidade, esta última chamada então de superclasse, e em seguida atribuir atributos específicos para as subclasses e estabelecer tipos de relacionamento específicos entre cada subclasse e outros tipos de entidade. O processo inverso, chamado de generalização, consiste em identificar características comuns entre vários tipos de entidade e então criar uma única superclasse que possua estas características. Os tipos de entidade originais permanecem com os seus atributos específicos e passam a ser subclasses. Como será visto adiante, a menos que seja explicitamente indicado, os diagramas resultantes de um processo de especialização ou generalização são os mesmos e indistingüíveis. A escolha de um processo ou outro para o desenho do esquema do BD é subjetivo e, em geral, reflete a maneira que o projetista percebe o minimundo que ele está modelando.

Um outro conceito importante do modelo EER surge da necessidade de se criar um relacionamento superclasse/subclasse com mais de uma superclasse, onde estas superclasses representam tipos de entidade diferentes. Neste caso, a subclasse é chamada de categoria e ela é um subconjunto da união das superclasses. Ao contrário do relacionamento superclasse/subclasse, onde há apenas uma superclasse e as entidades das subclasses são as mesmas entidades da superclasse, cada entidade da categoria é entidade de apenas uma das superclasses e ela herda os valores dos atributos da entidade nesta superclasse (herança seletiva).

2.4.5.3 Restrições de especialização e de generalização

Existem três tipos básicos e mais comuns de restrições que podem ser aplicadas em relacionamentos superclasse/subclasse de especializações e generalizações: restrição de definição, de disjunção e de completeza.

Em alguns relacionamentos superclasse/subclasse, pode-se definir exatamente quais entidades serão membros de cada subclasse utilizando uma condição sobre o valor de um atributo da superclasse. Estas subclasses são então chamadas de

definidas por predicado (ou definidas por condição), e a condição é chamada de predicado definição. Esta condição é uma restrição que diz que todas as entidades

da subclasse devem satisfazer o predicado de definição e todas as entidades da superclasse que satisfazem o predicado de definição devem pertencer à subclasse.

Se todas as subclasses de uma especialização/generalização compartilharem o mesmo atributo da superclasse para estabelecer um predicado de definição, a especialização/generalização é dita definida por atributo, e o atributo é chamado de

atributo de definição.

Nos casos em que não há nenhuma condição preestabelecida que indica automaticamente a qual subclasse uma entidade pertence, a subclasse é dita definida

pelo usuário. Os usuários do BD, ao inserir uma nova entidade, é que determinam se

ela é membro de uma subclasse e qual é a subclasse.

A restrição de disjunção determina que as subclasses de uma especialização/generalização devem ser disjuntas, isto é, uma entidade só pode ser membro de uma subclasse da especialização/generalização. Caso as subclasses não sejam disjuntas, seus conjuntos de entidades irão se sobrepor, o que significa que uma entidade pode pertencer a uma ou mais subclasses da especialização/generalização.

A restrição de completeza determina se a especialização/generalização é total ou parcial. Se ela é total, toda entidade membro de uma superclasse deve ser membro de pelo menos uma subclasse da especialização. Já se ela é parcial, as entidades da superclasse não são obrigadas a pertencer a alguma subclasse. As categorias também podem ser totais ou parciais. No primeiro caso, todas as entidades das superclasses

devem ser membros da categoria; já no segundo caso, todas as entidades das superclasses podem ser ou não membros da categoria.

As restrições descritas acima são determinadas à partir das características do mundo real e que são representadas no esquema utilizando os conceitos do modelo EER. Estas restrições determinam que certas regras devem ser obedecidas quando entidades são inseridas ou eliminadas. Algumas destas regras são:

• apagar uma entidade de uma superclasse implica em apagá-la automaticamente de todas as subclasses as quais ela pertence;

• inserir uma entidade em uma superclasse implica necessariamente inseri-la em todas as subclasses definidas por predicado nas quais o predicado de definição é satisfeito;

• inserir uma entidade em uma superclasse com especialização/generalização total implica inseri-la também em pelo menos uma das subclasses.

2.4.5.4 Diagramas do modelo EER

A notação gráfica do modelo EER é a mesma utilizada pelo modelo ER adicionada de novas estruturas relativas aos conceitos semânticos adicionais deste modelo. A tabela a seguir mostra a notação gráfica dos novos conceitos.

Tabela 7 - Resumo da notação gráfica dos diagramas EER

Significado Símbolo

Especialização disjunta, total

D

Especialização disjunta, parcial

D

Especialização sobreposta, total

Significado Símbolo

Especialização sobreposta, parcial

O

Especialização definida por atributo

D <atributo de definição> <papel 1> <papel n> <papel 2> Categoria total U Categoria parcial U

Categoria definida por atributo

U

<condição 1> <condição 2> <condição n>

Fonte: Notação usada por ELMASRI, R.; NAVATHE, S.B., 1989, capítulo 15.

Os vários elementos da notação mostrados na Tabela 7 podem ser combinados para criar estruturas de dados mais complexas. Subclasses podem possuir subclasses, formando hierarquias e redes de especialização/generalização. Subclasses podem possuir mais de uma superclasse, sendo portando uma subclasse compartilhada. Este caso é diferente da categoria pois, ao contrário desta, em que a categoria herda os atributos de apenas uma superclasse, a subclasse herda os atributos de todas as superclasses.

É importante notar que no modelo EER é feita uma extensão da definição do tipo de relacionamento, agora permitindo que classes, e não apenas tipos de entidade, façam parte de relacionamentos. Desta forma, substitui-se o termo tipo de entidade por classe e a notação gráfica continua consistente porque todas as classes são representadas por retângulos.

2.4.6 Modelo de dados relacional