Relacionamentos, Papéis e Restrições Estruturais
Tipo e Instância de Relacionamento: Um tipo de relacionamento R entre n tipos de entidades E1 , E2 , ..., En é um conjunto de associações entre entidades desses tipos. Diz-se que cada entidade E1 , E2 , ..., En participa no tipo de relacionamento R e que as entidades individuais e1 , e2 , ..., en participam na instância do relacionamento ri =(e1 , e2 , ..., en). O índice i indica que podem existir várias instâncias de relacionamento.
Por exemplo, considere-se que um tipo de relacionamento TRABALHA-PARA exista entre tipos de entidades EMPREGADO e DEPARTAMENTO. Este relacionamento associa cada empregado com o departamento em que este trabalha. Cada instância de relacionamento em TRABALHA-PARA associa uma entidade empregado e uma entidade departamento. A Figura 4.5 ilustra este exemplo, onde cada instância de relacionamento ri é conectada a uma entidade empregado e a uma entidade departamento. No mini-mundo representado nesta Figura, os empregados e1 , e3 e e6 trabalham para o departamento d1 ; e2 e e4 trabalham para d2 ; e e5 e e7 trabalham para d3 .
O Grau de um Tipo de Relacionamento: O grau de um tipo de relacionamento indica o número de tipos de entidades participantes. Assim, o tipo de relacionamento TRABALHAPARA é de grau dois. Um tipo de relacionamento de grau dois é chamado binário e de grau três de ternário. Um exemplo de um tipo de relacionamento ternário é FORNECE, ilustrado na Figura 4.6. Cada instância de relacionamento ri associa três entidades - um fornecedor s, uma peça p e um projeto j - onde o fornecedor s fornece a peça p para o projeto j. Podem existir tipos de relacionamento de qualquer grau, porém é mais freqüente encontrar o tipo de relacionamento de grau dois.
Em geral, um tipo de relacionamento ternário representa mais informação do que três tipos de relacionamentos binários. Por exemplo, considere os três tipos de relacionamentos binários: PODE-FORNECER, USA e FORNECE-ALGO. Supõe-se que:
a. PODE-FORNECER, entre os tipos de entidades FORNECEDOR e PEÇA, possui uma instância (s, p) com o significado: "o fornecedor s pode fornecer a peça p" (para qualquer projeto);
b. USA, entre os tipos de entidades PROJETO e PEÇA, possui uma instância (j, p) com o significado: "o projeto j usa a peça p"; e
c. FORNECE-ALGO, entre os tipos de entidades FORNECEDOR e PROJETO, possui uma instância (s, j) com o significado: "o fornecedor s fornece alguma peça para o projeto j".
A existência dessas três instâncias de relacionamentos (s, p), (j, p) e (s, j) em PODEFORNECER, USA e FORNECE-ALGO, respectivamente, não necessariamente implica que uma instância (s, j, p) exista no tipo de relacionamento ternário FORNECE. Isto tem sido chamado armadilha de conexão.
Relacionamento como Atributo: Convém, algumas vezes, pensar em um tipo de relacionamento em termos de atributos. Considere-se o tipo de relacionamento TRABALHA-PARA discutido anteriormente. Pode-se pensar em colocar um atributo chamado Departamento no tipo de entidade EMPREGADO onde o valor deste atributo em cada entidade empregado é a entidade departamento em que ele trabalha. Quando se pensa em um tipo de relacionamento binário como atributo, existem duas alternativas: Departamento como atributo do tipo de entidade EMPREGADO ou Empregado como atributo do tipo de entidade DEPARTAMENTO. Neste último caso, o atributo Empregado é um atributo multivalorado, onde os valores pertencem ao tipo de entidade EMPREGADO. Qualquer uma dessas alternativas é representada pelo tipo de relacionamento TRABALHAPARA.
Nomes de Papéis e Relacionamentos Recursivos: Cada tipo de entidade que participa de um tipo de relacionamento possui um papel específico no relacionamento. O nome do papel indica o papel que uma entidade de um tipo de entidade tem para cada instância de relacionamento. Por exemplo, no tipo de relacionamento TRABALHA-PARA, EMPREGADO tem o papel empregado ou trabalhador e DEPARTAMENTO tem o papel de departamento ou empregador. A escolha do nome nem sempre é simples. Para o tipo de relacionamento ternário FORNECE, é difícil encontrar-se um nome. O nome de papel não é exclusividade do tipo de relacionamento onde os tipos de entidades participantes são distintos. Em alguns casos, um mesmo tipo de entidade participa mais que uma vez em um tipo de relacionamento com diferentes papéis. Nesses casos, é essencial identificar os nomes dos papéis a fim de distinguir o significado de cada participação. Tais tipos de relacionamentos são chamados recursivos. Para ilustrar, considere a Figura 4.7:
O tipo de relacionamento SUPERVISIONA relaciona um empregado com o seu supervisor, onde ambas entidades são membros do mesmo tipo de entidade EMPREGADO. Assim, o tipo de entidade EMPREGADO participa duas vezes: uma vez no papel de supervisor e outra no papel de supervisionado. Na 4.7 acima, as linhas marcadas com "1" representam o papel de supervisor e os marcados com "2" representam o papel de supervisionado. Assim, e1 supervisiona e2 , e2 supervisiona e3 e e3 supervisiona e4 .
Restrições sobre Tipos de Relacionamentos: Os tipos de relacionamento possuem certas restrições que limitam as combinações possíveis de entidades participando nas instâncias de relacionamento. Estas restrições são determinadas pelas situações do mini-mundo que os relacionamentos representam. Por exemplo, na Figura 4.5, se existir uma regra que um empregado trabalha para apenas um departamento, então esta restrição deve ser descrita no esquema. Pode-se distinguir dois principais tipos de restrições de relacionamento que ocorrem com relativa freqüência: razão de cardinalidade e participação.
A restrição razão de cardinalidade especifica a quantidade de instâncias de relacionamento que uma entidade pode participar. No tipo de relacionamento binário TRABALHA-PARA, DEPARTAMENTO:EMPREGADO tem razão de cardinalidade 1:N. Isto significa que cada entidade departamento pode estar relacionada a inúmeras entidades empregado (muitos empregados podem trabalhar para um departamento) mas uma entidade empregado pode estar relacionada a apenas um departamento (um empregado pode trabalhar apenas para um departamento). As razões de cardinalidade mais comuns para tipos de relacionamento binário são 1:1, 1:N e M:N.
Um exemplo de um tipo de relacionamento binário 1:1 pode ser observado na Figura 4.8, entre DEPARTAMENTO e EMPREGADO é GERENCIA, que relaciona uma entidade departamento com o empregado que gerencia esse departamento. Este relacionamento é 1:1 pois sabe-se que um empregado pode gerenciar apenas um departamento e que um departamento pode ter apenas um gerente.
O tipo de relacionamento TRABALHA-EM entre EMPREGADO e PROJETO tem a razão de cardinalidade M:N (Figura 4.9) considerando que um empregado pode trabalhar em diversos projetos e que diversos empregados podem trabalhar em um projeto.
A restrição de participação especifica se a existência de uma entidade depende dela estar relacionada com outra entidade através de um relacionamento. Existem dois tipos de restrições de participação: total e parcial. Se uma companhia estabelece a regra de que todo empregado deve trabalhar para um departamento, então uma entidade empregado somente pode existir se ele participar em uma instância de relacionamento TRABALHAPARA. A participação de EMPREGADO em TRABALHA-PARA é chamada total, o que significa que toda entidade empregado deve estar relacionada a uma entidade departamento via TRABALHA-PARA. A restrição de participação total é algumas vezes chamada dependência existencial. Não é esperado, na Figura 4.8, que todo empregado gerencie um departamento, assim a participação de EMPREGADO no tipo de relacionamento GERENCIA é parcial. Isso significa que algumas entidades, do conjunto de entidades EMPREGADO, poderão estar relacionadas a uma entidade departamento via GERENCIA, mas não necessariamente todas.
As restrições de participação e razão de cardinalidade podem ser derivadas da restrição estrutural de um tipo de relacionamento. É simples especificar as restrições estruturais, embora não seja tão intuitiva quanto às restrições de participação e razão de cardinalidade. Pode-se associar um par de números inteiros (min, max) para 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 para cada entidade e em E, e deve participar ao menos min e no máximo max vezes em instâncias de relacionamento de R. Note-se, que se min=0 então a restrição de participação é parcial e se min>0 então a participação é total. A vantagem de usar este método é que ele é mais preciso e pode ser usado facilmente para especificar restrições estruturais para tipos de relacionamentos de qualquer grau.
Atributos em Tipos de Relacionamento: Os tipos de relacionamento também podem ter atributos da mesma maneira que os tipos de entidades. Por exemplo, pode haver a necessidade de se representar a quantidade de horas semanais trabalhadas por um empregado em um dado projeto. Isto pode ser representado em cada instância de relacionamento TRABALHA-EM na forma de atributo denominado Horas. Um outro exemplo é o caso de representar a data em que um gerente começou a gerenciar um departamento através de um atributo DataInício para o tipo de relacionamento GERENCIA (Figura 4.8).
Note-se que atributos de tipos de relacionamento 1:1 ou 1:N podem ser incluídos como atributos de um dos tipos de entidades participantes. Por exemplo, o atributo DataInício para o tipo de relacionamento GERENCIA pode ser um atributo tanto de EMPREGADO quanto de DEPARTAMENTO; embora, conceitualmente, ele pertença ao relacionamento GERENCIA. Isso ocorre porque GERENCIA é um relacionamento 1:1. Assim, toda entidade departamento ou empregado participam em apenas uma instância de relacionamento e, dessa forma, o valor do atributo DataInício pode ser representado em uma das entidades participantes.
Para um tipo de relacionamento 1:N, um atributo de relacionamento pode somente ser colocado no tipo de entidade que está do lado N do relacionamento. Por exemplo, na Figura 4.5, se o relacionamento TRABALHA-PARA tiver um atributo DataInício indicando quando um empregado começou a trabalhar para um departamento, este atributo pode ser colocado como atributo de EMPREGADO. Isto acontece porque o relacionamento é 1:N, tal que cada entidade empregado participa apenas uma única vez em uma instância de TRABALHA-PARA. Em ambos os tipos de relacionamento 1:1 e 1:N, a decisão de onde colocar um atributo de relacionamento é determinada subjetivamente pelo projetista de esquemas.
Se o valor de um atributo é determinado pela combinação das entidades participantes em uma instância de relacionamento, e não apenas por uma das entidades, então o atributo deve ser especificado como um atributo de relacionamento. Esta condição aplica-se a atributos de tipos de relacionamentos M:N, porque as entidades dos tipos de entidades participantes podem participar em inúmeras instâncias de relacionamento. Um exemplo disso é o atributo Horas do relacionamento M:N TRABALHA-EM (Figura 4.9). O número de horas que um empregado trabalha em um projeto é determinado pela combinação empregado-projeto e não separadamente.
ATIVIDADE DE FIXAÇÃO (TURMA 01)
ATIVIDADE DE FIXAÇÃO (TURMA 02)





Comentários
Postar um comentário