• Nenhum resultado encontrado

2 REVISÃO DA LITERATURA

2.4.4 Modelo de dados ER

2.4.4.1 Conceitos básicos do modelo ER

O principal objeto do modelo ER é a entidade, que é algo do mundo real que possui existência própria. Ela pode ser um objeto físico (pessoas, imagens, bobinas, etc.) ou conceitual (estudos, séries, visitas, etc.). Cada entidade possui propriedades que a descrevem e que são chamadas de atributos. Cada entidade em particular possui

valores para cada um dos seus atributos, e são estes valores dos atributos que

constituem a maior parte dos dados que são armazenados em um banco de dados. Alguns atributos podem ser divididos em subpartes menores com significados próprios e independentes, como no caso de um endereço residencial, que pode ser dividido em, por exemplo, “Endereço”, “Cidade”, “Estado” e “CEP”. Um atributo formado pela união de atributos mais simples é chamado de composto, enquanto que um atributo que não é divisível em partes menores é chamado de simples ou atômico. Os atributos compostos são úteis quando os usuários ora referem-se ao atributo composto como sendo uma unidade, ora referem-se às partes do atributo individualmente. O valor do atributo composto é a concatenação dos valores dos atributos simples que o forma.

A maioria dos atributos admitem apenas um valor e são chamados de atributos

singelos. Por exemplo, o atributo “Idade de uma pessoa”, pois cada pessoa possui

apenas uma idade. Existem casos em que atributos podem ter mais de um valor e eles são, então, chamados de atributos múltiplos. Como exemplo, uma imagem de ressonância pode ser obtida a partir de mais de um eco e, conseqüentemente, o atributo “NúmeroDoEco” deve possuir os vários números correspondentes aos ecos usados. Para os atributos múltiplos, podem ser especificadas as quantidades mínimas e máximas de valores que o atributo de uma entidade pode possuir.

Em alguns casos, os valores de dois ou mais atributos podem estar associados. É o caso, por exemplo, de “Idade” e “DataDeNascimento”, em que o valor do atributo “Idade” pode ser calculado à partir da “DataDeNascimento” e da data atual. Neste caso, “Idade” é chamado de atributo derivado e diz-se, então, que ele é

derivado de o atributo “DataDeNascimento”. Já alguns outros valores de atributos

são derivados de entidades relacionadas, como, por exemplo, o número de imagens de uma série, que é calculado contando-se o número de imagens existentes que são relacionadas a uma série específica.

Em alguns casos, pode acontecer que não exista um valor para o atributo de uma entidade, seja porque este valor é desconhecido, ou porque este atributo não é aplicável ao caso específico da entidade. Nestes casos, é então utilizado um valor especial chamado de nulo.

2.4.4.2 Tipos de entidade, conjunto de valores e atributos chave

Um banco de dados normalmente possui grupos de entidades que são similares, compartilhando os mesmos atributos, mas com valores distintos para os atributos de cada entidade. Estas entidades similares são chamadas de tipo de entidade e são descritas por um nome e uma lista de atributos. A descrição de um tipo de entidade é chamada de esquema do tipo de entidade e especifica a estrutura comum compartilhada pelas entidades individuais do tipo correspondente. O esquema possui o nome do tipo de entidade, o nome e o significado dos seus atributos, e qualquer restrição que deve existir nos valores dos atributos das entidades individuais. O conjunto de instâncias de entidades individuais em um determinado momento é chamado de extensão do tipo de entidade. O esquema não muda com freqüência, mas a cada momento que é adicionada ou removida uma entidade, uma extensão diferente daquele tipo de entidade é criada.

Geralmente um tipo de entidade possui um atributo cujos valores são distintos em cada entidade individual. Este atributo é chamado de atributo chave, e seus valores são usados para identificar unicamente cada entidade. Algumas vezes, vários atributos formam uma chave, o que significa que a combinação dos valores destes atributos deve ser distinta para cada entidade. O conjunto de atributos com esta propriedade pode ser agrupado para formar um atributo composto que será, por sua vez, um atributo chave do tipo de entidade. Um tipo de entidade pode possuir mais de um atributo que seja chave.

A cada atributo simples de um tipo de entidade está associado um domínio, que é o conjunto de valores que podem ser atribuídos ao atributo para cada entidade individual. Por exemplo, como a idade de uma pessoa não pode ser negativa, pode-se determinar que o domínio para o atributo “Idade” são os números maiores que zero.

2.4.4.3 Relacionamentos, papeis e restrições estruturais

A maioria dos bancos de dados possuem vários tipos de entidade e, além dos valores dos atributos das entidades que pertencem a cada tipo de entidade, existem relacionamentos entre as entidades.

Um tipo de relacionamento é um conjunto de associações entre tipos de entidade. Cada uma destas associações, chamadas de instâncias de relacionamento, inclui exatamente uma entidade de cada tipo de entidade participante. Cada instância de relacionamento representa o fato que entidades que participam do relacionamento estão relacionadas de alguma forma no minimundo correspondente. A figura a seguir exemplifica um relacionamento onde instâncias do tipo de entidade “IMAGEM” estão relacionadas a instâncias do tipo de entidade “AQUISIÇÃO” através do tipo de relacionamento “POSSUI”. a1 a2 a3 M i1 i2 i3 i4 i5 M r1 r2 r3 r4 r5 M “POSSUI” “IMAGEM” Tipos de entidade: Instâncias: “AQUISIÇÃO”

Figura 12 - Exemplo de relacionamento entre entidades.

O grau de um tipo de relacionamento é igual ao número de tipos de entidade participantes. O exemplo da Figura 12 corresponde a um relacionamento binário. Se houver três tipos de entidade, o relacionamento será terciário, e assim sucessivamente.

Algumas vezes é conveniente representar os tipos de relacionamento como sendo atributos do tipo de entidade. No caso do exemplo da Figura 12, o tipo de entidade “IMAGEM” poderia possuir um atributo “Aquisição” cujo valor para cada imagem seria a aquisição da qual ela faz parte. Desta forma, o domínio para o atributo “Aquisição” é o conjunto de todas as entidades aquisição, que é o próprio tipo de entidade “AQUISIÇÃO”.

Cada tipo de entidade que participa em um tipo de relacionamento exerce um

papel particular no relacionamento. O nome do papel significa o papel que a

importante principalmente quando um tipo de entidade participa mais de uma vez no tipo de relacionamento em papeis diferentes. Este tipo de relacionamento é chamado de recursivo e é exemplificado na Figura 13, onde o tipo de relacionamento “DERIVAÇÃO” relaciona imagens originais e imagens derivadas das originais. Assim, o tipo de entidade imagem participa duas vezes em “DERIVAÇÃO”: uma vez no papel de “Original” (linha sólida) e outra vez no papel de “Derivada” (linha pontilhada). Cada instância de relacionamento ri associa duas imagens ij e ik, uma no papel de “Original” e outro no papel de “Derivada”.

i1 i2 i3 i4 i5 M r1 r2 r3 r4 M “DERIVAÇÃO” “IMAGEM” Instâncias: Tipos de entidade:

Figura 13 - Exemplo de relacionamento recursivo.

Tipos de relacionamento normalmente possuem restrições que limitam as possíveis combinações de entidades que participam das instâncias de relacionamento. Estas restrições são determinadas à partir do minimundo que os relacionamentos representam e existem dois tipos principais e mais comuns: razão de cardinalidade e

restrição de participação, chamadas conjuntamente de restrições estruturais.

A razão de cardinalidade é uma restrição que especifica o número de instâncias de relacionamento em que uma entidade pode participar. Tomando como exemplo a Figura 12, as entidades de “AQUISIÇÃO” podem estar relacionadas a mais de uma imagem, enquanto cada entidade de “IMAGEM” só pode estar relacionada a uma aquisição. Desta forma, a razão de cardinalidade do tipo de relacionamento “POSSUI” é 1:N. Para tipos de relacionamento binários, as razões de cardinalidade mais comuns são 1:1, 1:N e M:N. Um exemplo de tipo de relacionamento M:N é o da Figura 13, em que uma imagem “Original” pode estar relacionada a várias imagens

“Derivada”, e uma imagem “Derivada” pode estar relacionada a várias imagens “Original”.

A restrição de participação especifica se a existência de uma entidade depende dela estar relacionada a outra entidade via um tipo de relacionamento. Existem dois tipos de restrição de participação: a total, em que todas as entidades de um tipo de entidade devem obrigatoriamente estar relacionadas a outras entidades, sejam estas de um outro tipo de entidade ou do mesmo tipo de entidade (relacionamento recursivo); e a parcial, que ocorre quando entidades de um tipo de entidade podem estar relacionadas a outras entidades, mas não necessariamente.

As restrições estruturais podem ser representadas de uma maneira simples através da associação de um par de números inteiros (min, max) a cada participação de um tipo de entidade E em um tipo de relacionamento R, onde 0 min max e max 1. Os números indicam que cada entidade e em E deve participar em pelo menos min e no máximo max instâncias de relacionamento de R em qualquer momento. Se min = 0, a participação é parcial, enquanto se min > 0 a participação é total. As vantagens desta forma de representação das restrições estruturais são a sua precisão e a possibilidade de representação das restrições estruturais em relacionamentos de qualquer grau.

Um tipo de relacionamento pode possuir atributos da mesma forma que tipos de entidade. Este tipo de situação ocorre quando determinados atributos não fazem sentido se colocados em tipos de entidade separados, mas passam a possuir um significado quando entidades estão relacionadas. Para tipos de relacionamento 1:1 e 1:N estes atributos podem ser colocados nos tipos de entidade participantes sem que ocorra problemas, pois, nos dois casos, há entidades que estão relacionadas a apenas uma outra entidade.* Já no caso de cardinalidade de M:N, o atributo deve estar

necessariamente no tipo de relacionamento.

Alguns tipos de entidade podem não possuir um atributo chave, o que significa que algumas de suas entidades podem não ser distinguíveis pois as combinações dos

valores de seus atributos podem ser idênticas. Elas são chamadas de tipos de

entidade fracos e suas entidades são identificadas entre si através de relacionamentos

com outras entidades em combinação com os valores de alguns de seus atributos. Este outro tipo de entidade é chamado de identificador, e o tipo de relacionamento entre o tipo de entidade fraco e o identificador é chamado de relacionamento de

identificação. O tipo de entidade fraco sempre possui participação total com relação

ao relacionamento de identificação, pois não é possível identificar uma entidade fraca sem uma entidade identificadora. Um tipo de entidade fraco possui uma chave

parcial, que é um conjunto de atributos que pode identificar unicamente entidades

fracas relacionadas a apenas uma entidade identificadora.

2.4.4.4 Diagramas do modelo ER

Os diagramas ER são utilizados para representar esquemas de banco de dados, contrastando, então, com o tipo de representação usado na Figura 12 e na Figura 13, onde a extensão de parte de um BD foi exemplificada. A representação de esquemas é mais interessante pois, ao contrário das instâncias de um BD, os esquemas raramente sofrem alterações. O esquema também é mais simples de ser mostrado pois ele é bem menor que a extensão do BD.

Os principais conceitos do modelo de dados ER (entidade, atributo e relacionamento) possuem representações gráficas. Podem existir pequenas diferenças nestas representações gráficas dependendo do autor, mas elas são todas equivalentes. Os tipos de entidade são representados por retângulos; os tipos de relacionamento são representados por caixas na forma de diamantes que são ligados aos tipos de entidade participantes do relacionamento; os atributos possuem um diagrama oval e são ligados aos correspondentes tipos de entidade ou tipos de relacionamento. A tabela a seguir apresenta resumidamente as notações gráficas usadas nos diagramas ER.

* Para relacionamentos com razão de cardinalidade 1:N, o atributo do relacionamento só pode ser

colocado no tipo de entidade do lado N da associação, pois as suas entidades estão relacionadas a, no máximo, uma outra entidade. Para um relacionamento 1:1, tanto faz em qual tipo de entidade o atributo será colocado.

Tabela 6 - Resumo da notação gráfica dos diagramas ER

Significado Símbolo

Tipo de entidade Tipo de entidade fraco Tipo de relacionamento Tipo de relacionamento de identificação Atributo Atributo chave Atributo múltiplo Atributo composto Atributo derivado Participação total de E2 em R E1 R E2 Razão de cardinalidade 1:N para E1:E2 em R N 1 E1 R E2

Restrição estrutural (min, max) na participação de E em R

min,max

R E

Fonte: Notação adotada em ELMASRI, R.; NAVATHE, S.B., 1989, cap.3.

2.4.5 Modelo de dados EER