dissertação de mestrado - repositorio.ufpe.br · este trabalho foi apresentado À...
TRANSCRIPT
Pós-Graduação em Ciência da Computação
“O GERENCIADOR DE CONSULTAS DE UM
SISTEMA DE INTEGRAÇÃO DE DADOS”
Por
Thiago Alves CostaThiago Alves CostaThiago Alves CostaThiago Alves Costa
Dissertação de Mestrado
Universidade Federal de Pernambuco
www.cin.ufpe.br/~posgraduacao
Recife, Fevereiro/2005
� � ii
�� ������������������� ��������
������������������ ���������������������� ������
��������������
�������������������
��������������������������������������������������
�
ESTE TRABALHO FOI APRESENTADO À PÓS-GRADUAÇÃO EM
CIÊNCIA DA COMPUTAÇÃO DO CENTRO DE INFORMÁTICA DA
UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO
PARCIAL PARA OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIA
DA COMPUTAÇÃO.
ORIENTADORA: ANA CAROLINA SALGADO
RECIFE, FEVEREIRO/2005�
Costa, Thiago Alves O gerenciador de consultas de um sistema de integração de dados / Thiago Alves Costa. – Recife: O autor, 2005. xi, 97 folhas : il., fig., tab., quadros.
Dissertação (mestrado) – Universidade Federal de Pernambuco. CIN. Ciência da Computação, 2005.
Inclui bibliografia.
1.Banco de dados. 2. Integração de dados. 3. Reformulação de consultas. 4. Linguagem de consulta. 5. Integra I.Título.
005.74 CDD (22.ed.) MEI2007-056
� � iii
���������� ��
������� � ����� ������ ����� ��� �� ����� � �!� ����� ��� ��!� ����� "���� �� "��� �� �����
#�������$�����������"������%�������%���������&��������� ��"����������������
������������"������'�����!����������"� ����������������������%�"��������������
�����������!������� �!�����(���������������"�"������#�����������"�����������"��)��
���� "��� ���"����� �����"�� *� ��"+���� ���,�"���� ��!� ��������"��� ������ ���� ��������!�
��-�������"����������������������.�������"�������"������"��)�����������"����
�����.������������
��/����""��01����!�����������"�.��!�������.��� �����������"���� ������������������
����������%������#����������������
��� ������������������������������ ������"������������������"���������������2����3����
���)����
4� �#����� �� 5�"���� ����� ���� 6��� '������ �� 6����� /"��"!� 7��������� ������!�
8���������!�0������7�� �!�9��������&��(�����"����:������/���"��/������6������"��
������;����������9��������&��(�����"������%��������������������������"� ������
������ �����"�2"����������3���
���� ������������ �����"��!� ��� �������� ��� ������ <����7�7�� =1����!� :������
/����!� >��� '���!� �?���� �� '������ �� ����� ��� '������� '����"�� ���� "����� ����
������������������"��"������������
4� �����>���0����6������&����������������"�(�� ��"������������������"��������
����<����������������"��������#��������(�������������������������"����������#������
�������(���������)��"����
������� ��� ����� ������ 7��"��� 7������ �� 0����6�2� ���� ��(�!� %�� �� �����"����
���"�� "�� ���� ����� ������� "��)�� ��� ������ �� ���+���� 0,���� 8����#��!� ��"@����
6��"��!�9��)�A����!�:�����6������9���"���7�������
������!��������������������������:@����������"��������(������������������
���"��� "�������������� �<��� ��"���� ��������������������%��� ���#��#���� �����#������
����������� ������ #��� ������� %��� �������� �")� ��� ����"��� #��� ���� ���������!� ���� "��"�
����������%������
iv
Resumo
O principal objetivo da integração de dados é prover uma visão integrada de diversas fontes
de dados distribuídas e heterogêneas, transmitindo ao usuário uma ilusão de um sistema
centralizado e homogêneo. Um sistema de integração de dados fornece ao usuário um esquema
global que contém componentes que representam as entidades e relacionamentos das fontes
locais. Diversos são os desafios a serem enfrentados pela integração de dados. Um deles é a
reformulação consultas. Esta é um processo de um sistema de integração de dados que tem a
tarefa de reformular uma consulta do usuário sobre o esquema global em subconsultas para as
fontes locais.
Para viabilizar o processo de reformulação de consultas, um sistema de integração de dados
deve fornecer mapeamentos entre os componentes do esquema global e os componentes dos
esquemas das fontes locais. Deve-se escolher um enfoque para esse mapeamento. Os
mapeamentos mais utilizados são Local-As-View (LAV) e o Global-As-View (GAV). No GAV,
para cada componente do esquema global é escrita uma consulta sobre os esquemas locais. No
LAV, ao invés de escrever consultas que definem como as entidades do esquema global são
obtidos, são definidas consultas que descrevem como obter a extensão das fontes de dados a
partir do esquema global. A principal diferença desses dois enfoques está na capacidade de
evoluir com as mudanças nos esquemas das fontes locais e com o processo de reformulação de
consultas.
Nossa proposta consiste em definir e implementar um gerenciador de consultas para o
Integra. Este é um sistema de integração de dados proposto por [Lóscio03a] baseado em
mediadores que oferece uma visão integrada de dados distribuídos em diversas fontes de dados
autônomas e heterogêneas, de acordo com o enfoque GAV.
Palavras-chave: Banco de dados, integração de dados, reformulação de consultas, linguagem
de consulta, mediadores, Integra.
v
Abstract
The main objective of data integration is to provide an integrated view of many distributed
and heterogeneous data sources, giving to the user the illusion of accessing a centralized and
homogeneous system. A data integration system supplies the user with a global schema that
contains components which represent local data sources entities and relationships. There are
many challenges that data integration has to face. One of them is query reformulation. The
query reformulation (process) is a process where a data integration system has the task of
reformulating a user query over a global schema to sub queries over local data sources.
To make the query reformulation process possible, a data integration system has to supply
mappings between global schema components and local data sources schema components. An
approach to that mapping must be chosen. The most commons mappings are Local-As-View
(LAV) and Gobal-As-View (GAV). In GAV, each global schema entity has a query over local
data sources schemas entities. In LAV, queries over global schemas define how the global
schema entities were obtained from the local (data) source. The main difference between these
two approaches is the capacity of evolving with the changes in the local sources schemas.
Our proposal consists on the definition and implementation of a query reformulation
model to Integra. Integra is a data integration system proposed by [Lóscio03a] based on
mediators, which offers an integrated view to distributed data in many heterogeneous and
autonomous data sources, according the GAV approach.
Keywords: Database, data integration, query reformulation, query language, mediators,
Integra.
� � vi
���� �
������� ������� ���� � �
J�J�6�"��� ��������������������������������������������������������������������������������������������������������������������������������������������������������� J
J�K�<�"��"���������"� ��������������������������������������������������������������������������������������������������������������������������������� E
������� ������������ ������� �� �
K�J�������������5�"���� ����>�� ������������������������������������������������������������������������������������������������������ L
K�K���#��"�"��������5�"���� ����>����������������������������������������������������������������������������������������������������� M
K�K�J ��#��"�"����������������������������������������������������������������������������������������������������������������������������� M
K�K�K ��#��"�"������������������� �������������������������������������������������������������������������������������������������������������� N
K�K�E ��#��"�"��������������� �����������������������������������������������������������������������������������������������������������������������JD
K�E�>��������5�"���� ����>����������������������������������������������������������������������������������������������������������������JJ
K�E�J 6����������� ������������������������������������������������������������������������������������������������������������������������JJ
K�E�K :�������� ����������"� ������������������������������������������������������������������������������������������������������������JK
K�E�E B"���(� �����2���� ����������"� ����������������������������������������������������������������������������������������������JE
K�E�O '���"��� ����"��"���������������������������������������������������������������������������������������������������������������������JO
K�O�&��"��������"���� ����������������������������������������������������������������������������������������������������������������������JP
K�P�'�������.�������� ������������������������������������������������������������������������������������������������������������������������������������JL
������� ����� ������ ����� �������� �!
E�J�=�"� � ���������������������������������������������������������������������������������������������������������������������������������������������������������JQ
E�K� ����������� ����������������������������������������������������������������������������������������������������������������������������������������������KD
E�K�J &��+�"������7�A���������������������������������������������������������������������������������������������������������������������������KE
E�K�K ����������� ����������"�����7�A������������������������������������������������������������������������������������������KO
E�K�E &��"��������"���� �������������7�A�������������������������������������������������������������������������������KP
E�E������������ ������������������������������������������������������������������������������������������������������������������������������������������������KM
E�E�J :�������� ����������"�����0�A����������������������������������������������������������������������������������������������KQ
� � vii
E�E�K ������"�������������������� �����������������������������������������������������������������������������������������������������ED
E�E�E ������"�������������������������� ���������������������������������������������������������������������������������������EK
E�E�O &��"���������������������#���0�A��������������������������������������������������������������������������������������EO
E�O� �������������2������������ ����������������������������������������������������������������������������������������������������������������EP
E�P�B�"��������#����������������������������������������������������������������������������������������������������������������������������������������������EP
E�P�J �������������������������������������������������������������������������������������������������������������������������������������������EP
E�P�K ���������� ���������������������������������������������������������������������������������������������������������������������������������������EM
E�L�:�������� ����������"��������������������-"�-�����������������������������������������������������������������EM
E�M�'�������.�������� ������������������������������������������������������������������������������������������������������������������������������������EN
������� �"�#�$������� ������ ��������� ��������� "%
O�J���#��"�"�����5�"������������������������������������������������������������������������������������������������������������������������������������OJ
O�J�J ������"��'���������������������������������������������������������������������������������������������������������������������������������OJ
O�J�K ������"����7��� ����6��"��� ����6�������������������������������������������������������������������������OK
O�J�E ������"�������?��� �����������������������������������������������������������������������������������������������������������������������OP
O�J�O ������"����5�"���� ����>���������������������������������������������������������������������������������������������������OP
O�J�P �����"������'��������3��� �������������������������������������������������������������������������������������������������������OL
O�K�R<S���������������������������������������������������������������������������������������������������������������������������������������������������������������PD
O�E�7�����������'�����"����������������������������������������������������������������������������������������������������������������������������PP
O�E�J 5�"��������'�����"������������������������������������������������������������������������������������������������������������������������PL
O�E�K G��"�����������"� �����������������������������������������������������������������������������������������������������������������������PL
O�E�E :������������'�����"� �������������������������������������������������������������������������������������������������������������PM
O�E�O 7��������������"�� �������������������������������������������������������������������������������������������������������������������LK
O�E�P '������������<�#������6��� � �����������������������������������������������������������������������������������������LE
O�E�L 5�"��������>���������������������������������������������������������������������������������������������������������������������������LP
O�E�M <2���������������������������������������������������������������������������������������������������������������������������������������������������LL
O�O�'�������.�������� �����������������������������������������������������������������������������������������������������������������������������������MD
������� ���&� �'�� �� �������������������� ������� �� (�
� � viii
P�J�G�����������"������������������������������������������������������������������������������������������������������������������������������������MK
P�K����#��"�"�����������������������������������������������������������������������������������������������������������������������������������������ME
P�E�6����������������������������������������������������������������������������������������������������������������������������������������������������������MO
P�E�J ��"����������� ���������������������������������������������������������������������������������������������������������������������������������MP
P�E�K ��"��������������������������������������������������������������������������������������������������������������������������������������������MN
P�E�E ��"���������������������������������������������������������������������������������������������������������������������������������������������MQ
P�E�O ��"���������������������������������������������������������������������������������������������������������������������������������������������NJ
P�O�G��"������"��� �������������������������������������������������������������������������������������������������������������������������������������������NP
P�P�'�������.�������� ������������������������������������������������������������������������������������������������������������������������������������NL
������� �)�� �����*�����+�����, ��-���� �� !!
L�J�'��"������.��������������������������������������������������������������������������������������������������������������������������������������������������NQ
L�K�G���������"��������������������������������������������������������������������������������������������������������������������������������������������QD
�� ��.�����/�� ��� ���� 0�
� � ix
1�������-������
�
������K�J�-���#��"�"���������������<2"�����C01����DEF$ ������������������������������������������������������N
������K�K�-���#��"�"����������������������<2"�����C01����DEF$ �����������������������������������������������������Q
������K�E���� >6&�����������������������������#��������������������������������������������������JJ
������K�O� ���������������� �������������"�����������������������������������������������������������������������������JE
������K�P�<2���������"��"����� ���������������������������������������������������������������������������������������������������������JP
������E�J� �������������� � � ������.�������#���������!����� ������.�������#������
���"�������������� �������������"��#��������"��������� ��� �����������������������������������������������KJ
������E�K�7�AT�<2��������T������!� T�'��"��� �����������������������������������������������������������������������������������KE
������E�E��������������� �� ������.�������#���������� �!����� ������.��������#�����
�����"������������ �� ��������"���������#��������"������.�������#���������� �������������KN
������E�O�0�AT�<2��������T������!��T������������ T�'��"��� �������������������������������������������������������KQ
������O�J���#��"�"�����&��"���5�"����C01����DEF ������������������������������������������������������������������������OJ
������O�K�<2����������������R-<�"�"H��������������������������������������������������������������������������������������OO
������O�E�<�#�����2����� �������������������������������������������������������������������������������������������������������������������ON
������O�O� �����������2���� ����������"�����������������������������������������������������������������������������������������PL
������P�J���#��"�"�����������������"1"������5�"���� �������������������������������������������������������������������MO
������P�K�>����������"�� ���������������������������������������������������������������������������������������������������������������MO
������P�E�>������������������#�����R-<�"�"H�������������������������������������������������������������������������ML
������P�O�>�������������������������"�R<S ������������������������������������������������������������������������MM
������P�P�>��������������������"���������������3��������������������������������������������������������MN
������P�L�>���������������>&U/� ���������������������������������������������������������������������������������������������MQ
������P�M�>���������������6U/� �����������������������������������������������������������������������������������������������MQ
������P�N�>����������������7�����������'�����"�� �����������������������������������������������������������NK
� � x
������P�Q�>���������#V3�����������������������"� ���������������������������������������������������������������NE
������P�JD�>���������#V3��������������!�"��# ��������������������������������������������������������������������������NO
������P�JJ�:�����������"��� ��R<S����&S0�����������������������������������������������������������������������NP
������P�JK� ��"1"������5�"���� ������������������������������������������������������������������������������������������������������������NL
������P�JE�5�"��������������"���5�"�����$��������"��������������"���$� ���������������������������NL
�
� � xi
1�������2���� ��
S����E�J�'��"�,������������� �����������������������������������������������������������������������������������������������������������EK
�
�
1�
������� ����
���� ���� �
�3� 4 �5��� �
=���,�"��������!���������������"����������������������"����������"��"������
������ �����"+���� �� �������� �� ���#���� �� ������ �� ����=�� �����"�� W��!� )�
������ �����"������ ��� ����������(��� ��� ������� ���"��� ��"��"�� �� ��"��������<����
���"����������������������� ���������!�����������������"������%�"��!��������
����������"�!� �������!� �?����� � W��!� ��"��� ��"���� B� �������� ������"�� ��� ������� ���
��� �������������������"�����������#������?����������������"���������"���������� ��
�� �������� ��� ������"� ���� � ������� �� ��� ��� �� "��� �� ���"��� #��� ��%�� ��(��� ��
���������������������"���
=����� ���"�2"�!� ���"���� �� ��"���� �� �� ��� �3�� �������� ����� �������"�� ���
��������� ������ ��������� � ��� ��"�������� ��� ���"��� ��"����3���� �� �"@�����
C'��"��QO!�>����DJ!�7����DK!�7���"DE!�5���QQF�����"�����������"���)��2����������
�"�� �!� ���"�� �������"�!� �2��"����� �����.��� ������ ���������� ��� ���"���"�� ������
���"��!�������"��� �����������"�������"���� ���������������������"��������������
��� )� ��� �"��� ��������� ��� ����� ��������� ��� ���"���� �� ��"���� �� �� ���� ���
��"���������������������$���������")�����!������"�"����������"�����"�������������!�
���"���� ����������!� ���"���� �� ����������"�� �� ������ �� ��� �� ��������� ��
������� �!� �� ��$� ������ ������"��!� �����"�"�� �� ������"��� ������� �� ��� ���������!�
�����"�� � ��%�"��!� ��"��� ��"���$� �� ������"��� ���������� �� �������� ��� ��� �������
������"���������������
B�� ���"���� �� ��"���� �� �� ��� ������!� ��������"�!� ��� �������� ��?������
C���"�����QQF!�����������������#��"�"�������������"� ���<������������� ���$�
� ����������"��!� ���#��������� �����"�� � �� �2"������� ���"��� #���� ������"�� � ��
��#����"���G�� ������� "��� ������������"��������"��� ��� ��� ������� "���(��!�
������"�����!�"���-������������"��#���������"���"3��"�������������"��"����������"��-
���"����������"�����������������$����������"�����(!����#���������� �����������!�
��"����������(��������������"1���������������������������>��������!���������"��� ��
�
�
�
2
���"�� ���"���"�� ������� ������"1������ �����!� "�� ������� "��� � ��"���� �� "����� ��
�������.��� ����������� �� ����"�� ��� �� ������"�!� ���)�� ���� ����� ��������� ��
��������"3�������������(������������������������������� �������������"����������
4� ��� �� ��������� �� ���"��� ?-��� �� ����� �� ��#���� ������� B� ��#���� ������ )� ���
��#����������������#�����������"������#����������"�����"��"�����������"�����
������ �� ���"��� �����$�� B�� ���"���� �� ��"���� �� �� ��� ����� ���� ����������� ��
����� ���� �� ����#��� �� ������"�� ��� ��������"��� �� ��#���� ������ ��� ���
��������"��� ��� ��#����� �� ���"��� ������� <2��"��� ���� ����#���� "��������!� � �� ����� ��
�������������7�A$�C �I���"�"����QLF������������������0�A$�C������QMF��=������#���
7�A!� ��� ��������"��� �� ��#���� ������ � �������� ��������.��� ������ �� ���"��� �������
������� ���%�"��� ����� G&5665&� C'��"��QOF!� &56&� C�����QLF� �� &<W�5&<� C&�����DKF��
�"��������#���7�A��9?����0�A!���������"��)����"������������������7�A��=���!����
��������"��� �� ���"��� ������ � �� ������ ����� ���.��� ������ �� ��#���� ������� ��%�"���
�����=������C>����DJF���G��I����C5���QQF��"����0�A����������#�����������"���
<�"��"������������"����������������������������7�����������'�����"����������"���
����"���� �����������������������������"������C01����DEF��<�������"����"���
����#���7�A� �� "��� ����� ���������� �� �"�� �� #��� ���� ������"� �����.��� ��� ���� �� ��
������"�������� �������"��� ����������"�����+����������7�����������'�����"����
������"�������"���� �������)��������1������������#���)��������?����������������
���������"������?���!���������?-��������������"�!������"3-���������"��������!�����������
������"���������"���������������?-���������,����������"���������������������?����
������"�"���
B����"�������"���� �������������"������C01����DEF!������5�"���!��"��"����������
�������������"������������.������,�"��������"���������"��"������"����3����"��)����
�������������������������������������"� �������"�,�������"��"��������"����
<��� �"� �� R60� C/�HQQF� ��� "���� �� ��� �� ��"���� ��� <�� C01����DEF!� "��)�� ����
������"����������R-<�"�"H� C01����DE�F�#���)��������������������"�� �����"��������
��� �� �������.��������"�� ���� ��#�����R60��B�R-<�"�"H� )� ���������������� "�"����
��#����������#��"�������#����������"����������
�� "���� �� ��� 7��������� �� '�����"�� )� ������2�� �� �����"�� �� ��������� ��
��������� ���� ��"���� �!� "��)����������� �� ������������!� ���"�� "�����!� ��� ���������
���� R<S� �$�%!��&� ����&� ��!"��"�$�� <�"� ��������� )� ������ ��� ������� ���
�
�
�
3
��������"� ����"������������"����������"�������"���� ��������R<S�)�������������
�� ������"� ��� ������"��� R60� ������"� ��� �����"�� �� ��������� �� ��������� �� ��
������"�������"��� �������"������������������������������"����"������R<S�� ���$�R<S�
����3����������������������"��� ����������"�����R<S������"������������!���$�R<S�
)��������������������?#������� ���������"������"�������������$������R<S�)����
�����������������R60!�"��-������"�������������������������"�������� ��R60��
/������������R<ST�
J� &�����6���� ����������7����������������5��������������������T�R<S�
)� ��� ���� ��� ��������"� �� ��"���� �� ������"��� &���� ����!� �� ���?���� ����
�����"������������"���������"����������!�#�����" �����?�"��(�����R<SX�
K� ��� ���� ��� ���� ������ ������ ����� �������T������� ����"��"������R<S�
�����"�� ���!� ������� �� �������� ������"���� ������"� ���� ��������>���� ����!� ��
���������"������������� ������(�����������������X�
E� ��� ���� � �� ���� � ��� ������� � ��� � �������� ������������ � "���� ��
������������"�� �� ��������� Y� ���� ��� �� K�O�O$T� R<S� �"���(� ������"��� R60� ���
���������� ��"��"���������!�������������� "��� �������������"�R<S�������
��"�����������)������!������*��������������� �����������"���R60���
����������������"������.���������������"�� �T�
J� �����"� �� ���������� �� �� ��� ��������� ��"���� ��� ��������"� �� �� ������"��
�R<S$X�
K� <��������� ������������"� ����7�����������'�����"�������"�������"���� ����
���5�"���X�
E� 5�������"� ����������"1"������5�"�����
�3� 8��������������������� �
B�������"��������"?���"��"��������������T�
� ������� � �� 9� ��������� � ��� ��� �T� ����������� ����"��� �� ��"���� �� �� ��!�
���������.��!�����������������������������������#��"�"�����"���(��������"����
����� "����� G��)�� ������"���!� ������ ���"���!� ������ ���"���� �� ��"���� �� ��
�������"������������������#��"�"������?�������
�
�
�
4
� ������� � �� 9� �� ������ � ��� � �������T� ����� ���"���� ������"� ��� ����#����
��?������� �� ������"�� �� ��#����� ���� ����� ��� ����#���� ���� �����"���� =�����
���"����"��)��� �����"���������"����������������������������"���������
����������#������������� ������!�� ��������"��������������"��������"���� ����
����������� ������������������� ����������������������� ����������"���
� ������� �"�9�#�$������� ������ ��������&� � �� T� ������ ���"���� ������"���� �
�#��"�"��� �� ��� ��������"��� �� ���%�"�� ������"�� ���� C01����DEF�� <���� ���"����
"��)���"������������� ��������������� ����������"��� ��������������������
���������"�����R-<�"�"H���R<S��
� ������� � �� 9� &� �'�� �� �������������������� ������� �T� ����� ���"���� ����
��"�����"�����������"���(��%��"���"��������"�����#��������������?��������
��������"� �� �� ��� ���"1"���� �� ��� ���"��� �� ��"���� �� �� ���� G��)��
�"������"������������������������"��������������������"1"������������"����
� ������� � )� 9� � �����*��� �� +�����, �� -���� �T� ����� ���"���� �����(� � �����"� �!�
���"���� �� �������.��� ��"��� ���� �� "�����!� ���"������.��� �� �����!� ������
�����".������"���������"������
�
�
�
�
5
������� ����
��������� ������� ��
B������������%�"�������"���� �������)�������������� ����"����������������"���
�� ��� ��"������� �� ��"����3���!� "�����"���� �� ���?���� ��� ���� �� �� ��� ���"���
���"���(���������3�����<�������"��������������������������������")� ������"1�����
���������-��"��"������<�������"�����+������������W��!������.�������"���� ����
���������"������������������!����"��#�����������������"���������������"����T�
��� ����� �,����� �� ���"��� �� ��� �"���"�� �����"���!� ������ �������.��� ������ ����
���"����"��������������������������"���������"���������������
'�����2�����!�������������"��������"������������.������������������W ����<2��"���
��,��������"������������.������������������W��!�"�������'!���!�����(�����������C56>/DOF�
�����3�������"��"�����������!���������"����!�"�������"�����"���$!���(��!��C6�������IDOF�
�����3�������?��������2���� ���������������������������$�����"�����?�����#�������3���
���"���������������������&������#���#��������Z���)�����������(�!��������"�*�������+��������!�����+��
,�!�����������������������������(�����-����[��=�����������"��!��������"�!�)���(������������
� "�� ������"��<�"��"�"�!� ��� ��������������������,�"����� ���"��!� �������� ��(�����
�����������������"���������"������������2��� �����������*�������"����!�������������
���"��� �� ��"���� �� ������"��� ��� ������� �������� ���� &"����� &��������!� ������ ������"��!�
��"��� "��� ������!� #���� ��" �� ������ ��%�� *� ���"�� ��� &�""��� �� ���� ���� ������"��� ��
������"�������"�����������������#���" ���
����"�������� �����"�"�� �� ���� �� ��� ���"��� �� ��"���� ���� ��� )� �����"��� ���
���?������������������#�����������%���������"����"�������������"�����������"��C01����DJF��
>���� ����!� ����-��� �� ���?���� �� "��� #��� ������ ���"��� ������"��!� ��"������ ���� ��"�������
��"�������������������������.�����������B����?�����1����������������������#���������!�
"��)�� ����� �� ��#���� ��"����� ��� ��#���� �� ���� ��� B� ��#���� ������ )� ��
��#���� �� ���"��� �� ��"���� �� �� ��� #��� ��������"� �� ��"���� ������"��� ��� ���"���
��"��������������$��
�� ��������� ���"����"��� ��� ��"������� ���"���� �� ��"���� �� �� ��� �� ���"����
��"��������������������"?�����"����#������,�"����� ���"�����������"����� ��"���� ����
�
�
�
6
��� � �� �"@������ �"��������"�!� �� ���"��� �� ��� �� ��� ���"��� �� ��"���� �� � ��
���"�����)-�2��"��"�������������������������"����
>�����*��"���(��"@���������"�����������"�������"���� ������!��������"�����
� �� �����"�� � �����.��� �����!� ������ ������� �"���.��� "�"�� ���� ��� #��"�� ����
��#������>���� ����!� ��� ���"��� �� ��"���� �� �� ��� "��� #��� ���� ���� �� ����"�"���
������ ��� ���%��"�� �� ���"��� ��"������ <���� ���"����"���� ����"�� � ��������� ��
���������������� �� ������ �� �� ��!� "�� ����� � ����� �� �� ")������ �� ��������"� �� ��
����������"���<����"�����!�������"��������"���� ���������#�������������������2������
��� ��������� ��� ��� �� ���"���� G��� ������.��� ����� ������� ���"���.��� ������2�� �
������"�������"�,���
��������������� ����"�.������ "���� ���"������ ��"���� ������� ��"?� �������� *�
������ ��"��� �� ���������� �� ����� ���� �� �������� �� ���"��� �� ���� �� �����
����������-���������.�����"?"�������������������"��#�����"����������������%��"��
��2�������"���"��)���������������������� �������"����G�����������������������������
"��)������������#���������������& ��������� �������������7�A$�C �I���"�"����QLF�����
������������ �0�A$� C������QMF�� <���� �������� �(��� ������"�� *� ����� ����� � ��
����� �� ��"������ ��#���������� ��� �� ��"������ ���"��� �������G��� ��������
�����������"���"���������������������������"�����������"��������"���� �������
#���)����������� �������������"�����#��������"���� ��������������"����������"���
�������G����������� �����?�������������������������"�������
������"�������"���� �������"��)������������(���������������"������������
������� ���"��� ��"����� #��!� �� ������ �� ��(��!� ����� ���%�"�� �"���(��� ������"���
��������������������"�����������"�.����������������������"���������������
<�"�� ���"���� ��"?� �����(�� ����� ������� =�� ���.��� K�K!� K�E!� K�O� ���"������� ��
�������!��#��"�"������������������?�������� ��"���� ��������=���� ��K�P���������
���������������"��������"���� �������������� ��K�L���������������������.����
�3� �� ���������������������� ������� ��
���"���������%�"����������"�������"���� �������)�����������������������
��"���� �����������������T����"�������"�����(�C���"�����QQF��=�����������"��!�
�����������"��� ���2"����������"���#����������"��� ����#����"���G���������"���
�
�
�
7
������������"��������"����������������"���(���� �����"�����!�"���-������������"��
#���� �� ���"��� "3�� "����� �� ������"� �"�!� �����"��-��� "����������"�� ������������ ���
#���������������"��� ������"���� �����������.���� ���2"�������
=� ������� �"�����(!� ��� ��� � �� ���������!� ��"������ �� ��(����� ���
������"1����� ������ ����� ����������� >���� ����!� �� ������"�� � �� ���"�� ���"���"�� �������
������"1������ �����!� "�� ������� "��� � ��"���� �� "����� �� �������.��� ����������� ��
����"�� ��� �� ������"�!� ���)�� ���� ����� ��������� �� ��������"3���� ���� ���
��(������ �� ������� �"�����(� � �� ���� ���� ��� #���� �� ������"�� �����
��������� �������.��� ������� "���(��� �� ������� �"�����(� �������"�� )� �����
#���T�
� ���.�����������������������.�����������"��������������� ����#����"�X�
� B� "����� �� ������"� �� ������"�� )� ���� �����"�"�� #��� �� ���� �� "���(� �� ��
�����X�
� \� ������?���� ��� ��� ���?����� �� ���"��� ��"����� �������.��� #��� � �� ����"��
���"���"��������"�������!�"�������!��������.������"1������
��#���" �������������������#������ ����������������������� ��#��� ��?�
�"���(?-��� ������������!�������"����������2����������������!�#��������� �������
������������(�������?�����
�3� ��6������������������������� ������� ��
��� �#��"�"���� ��?������ �� ��"���� �� �� ��� � �� ����� ����������������� & �� ���T� �
�#��"�"������������!���#��"�"�����������������������#��"�"�����������������
�3�3� ��6��������������� ����
�� �#��"�"��� �� �������� ��������"� � ����������"��!� �������� ������ �� ��"����
������ ��� ��"�������� ����,�"����� ���"��� �� ��� �� ����������(� ��� ��#���� ��� ����
��� ��� B� ������ )� ��� �1���� �� ���"���� #��� ������� �� "�"� �� ������"�� �����"��� ��
���"����� ��"���� ���� )� �������?�������� ��������� ������� ������"�� ��� ���������"�� #���
��� �� ������ *�� ���"��� �� ��!� ����� ���"�� � ������ K�J�� <���� ���������"�� ����� ����
"��(������������������������"���������"�������"��)����"��"������������� ��
K�O�O$�� ��"��������"�!� ��� ��� �� �� ���"�� ������"� � �� ������"���� ��� ��� ����"��
�
�
�
8
����������"�����������������#��!���" �!������"���������?�����
cliente 1 cliente 2 cliente m
tradutor 1
mediador
consulta
resposta
consulta
resposta
tradutor 2 tradutor n
servidor
dados 1
servidor
dados 2
servidor
dados n
consulta resposta
...
...
...
�
-������3��:���6��������������� ���3�;8<����������=1'�� %��>?�
�
��������!����"�����������"����"��������������T�
J� � �� ������� � T������������� ����������(��!������%!�����"������������
�������������������>���� ����!�������������"� �������"��������������� ��
������� ��������� ���"���.��� �����"�� ���� ������� �� �� �������� � ��
����������� ��)�� ����!� ������"��� �������� �������� ���"����"���� ��"��"�� ��
�������#������������"�����"��"���������������"�����������
K� �������� T� ��� �������� � �� ��(��� �� ��"����� ��� �� ����� ��� #��� �����
�����"�����������"�����������������
E� 4�������� T� � ���� �� ����#����� ��� ����������� ��� ��� ���� ��
�����"������������������"�������#�������������������,"���������"�����
O� � �����,���� T��������������� ��,"���������������������������������
�����.����
���#��"�"�����������������������"�����������"�������"���� ���������"��������
��� �,�"������ ������ �� ���� �"�����"�!� ���#����� C����"�QN!� /��QQF� ��" �� �����
���������������"�������#��"�"�������������������"��#����������������"���(����
��"���� ���������W����
�3�3� ��6����������������@���, ����
�� �#��"�"��� �� ����� ���������� ��������"� � ������� �"�����(�� =��� ��� ��� � ��
���������!� ��"����������(�����������������"1�������"��!������������������ �CW ���QPF!�
�
�
�
9
C7��"QPF$!������� ������"�� ��#����"�� �� ���"����� ��"���� �� � ����������� ���������
������*�����"�������!���������"���������K�K��B����������������)����� ���"�����(����
�����#���#����������"�������"��������"�������"���� ����� ����������������(�.��)�
��� ���� �� ����� � ��"��� �� ��"��� ����.��� ���� �� ���� ���� �"�����(� "��)�� ��
��(�����"����"����������������������������
cliente 1 cliente 2 cliente m
servidor
dados 1
warehouse
dados
consulta
resposta
atualização
dados
servidor
dados 2
servidor
dados n
cliente 1 cliente 2 cliente m
servidor
dados 1
warehouse
dados
consulta
resposta
atualização
dados
servidor
dados 2
servidor
dados n...
...
�
-������3��:���6����������������@���, ���3�;8<����������=1'�� %�>?�
�
������������������������� � ��������������������� �#��"�"��� ������"�� �����"��� ��
������"1���� �� ��� ������"��"�� �� "���(�� ���� ���� �� *�� ���"��� �� ��� ��"�����
�C�����QM!�]����QPF$��G��"����� ��)��������!����"��#��������"���� ��"���������"��������
�����"��������.����������&��������!�)����������#���������"���(�.����
/������"�!��2��"��������"�")����������"��� ����������"1����������& �����T�
J� ��������A��� ����5�� T� �� ���"�,���� ������"1���� )� ����"���� )� ���"� ���
��������������� ���"����\���������������"�"�� ���"���!������(�#����������
"�����������"1�������"����������������������������"����X�
K� 4�������� � ���������T� ������ ��� ���"��� ������ � �� ������� ��� ��
������"1������������� ����"���(�.��������������"��"���(���")����������������
���"�����C]���QL!�'���QJF��
�������"�����#����"�������#�����"�")�������)����������"���(� �������"���
����!������%!�������������"�������������������"�������"���� �������������.����
���"��������������������������������������������������"�������������������
���������"����� ������������������"�������"���� ������T�
J� - ����������� ��� ���5��������� ��'��T� � ���"�� �� ��� "��� �����.�����
������ �� ���"��� �� ��"���� �� �� ��� ���������.��� #��� ����� ���"��� ����
�
�
�
10
�������X�
K� - ����������� ��� � ��5������������T� � ���"�� �� ��� ��"������������.���
�����"��)����������������������������X�
E� - ����� ��� ��5����T� � ���"�� �� ��� � �� )� ��(� �� ��"������ �������.����
����������"�����(� ������ ��)�����������
��)���"���(� ������������������!�#������������"���(�.���������������"�����
��!� "��)�� �2��"�� �� �������� � ���"��� �� �� ������ �$� �� ���.��� �"�����(�� ��
�����������"���(�.������"���������#����������"���������������
�� �#��"�"��� �� ����� ���������� ������"� ��"����� �� ����"������ �� �������3���� �
�#��"�"��� )� ���� #���� �?� � ��������� #��� �� �������.��� ��"�%�� ������� "���(���
��)�!������#��"�"���)��#�������������"�����"��.��T�
� ���������"��#������ �����"�������"�������"���� ����������������������X�
� <2��"���������������+�������������������������"������"�����"����"���
����"��"���(�����������.��X�
� �������������"����#�������������.���"������������������������������!�����
�2�����!��������.������"1����������������������
�3�3� ��6������������:� :�����
>6&� �/���� ����� ��!�"���!�� �&�����$� ����� ������"��� ����� ��� �#��"�"��� �����"���(�
��� �����"������"�� �� ��� C������DK!� �����DE!� /����"���DK!� 8���HDE!� B��DEF�� ���
>6&�������"�����������%��"������������1���������$��'������"��������#�����������#���
��������"� ���� ������� �� ��"�������� � ������� ������ ��(���� ��� "���� �� ��������� #����
���������� �����"���������#������
6�����"�����"�����#����������� >6&�� �����"��� �������"����"�������������#������
���%��"��� �� �������S���� ��� ������"� )� �����"�� � ��� ����!� �� ���"��� ���� ��"��� ���
������"��� �� #��#���� ����� ��� >6&� #��� ��"����� �����"�� "��)�� �� ���!���� ���0!����� ��
������"����=�� >6&��������K�E!����������"�����1������������"���������1�/����
������-����!������������������"��)����/��+�������������!)�����>������"����"�������"������
��"���� �� �� ��� ��� �������� #��� � �� ����?�#�����!� ��� >6&� ?� �����"�� � #��#����
����������"�����"�?������"�������������>���"�!� >6&�� ���������(�.�����"��"�������"������
��"���� �� �� ��!� %?� #��� ������ ������ ����� "��� ����� �������� ��� ��"���� ������
�
�
�
11
C8���HDEF��
DBLP
dados
artigo
artigo
Berlin
dados
área
membros projeto
nome publicações pessoas
Roma
dados
membros publicações
projeto
artigo autormembro
título
Projetos-BD
projetos
nome publicaçõesmembro
Stanford
dados
pessoas artigos
estudantes publicações
Paris
dados
direção membros
projeto líderes outros
�
-������3��B�&�4������������� ������� ������ �� ����6���3�
���������������"���������� >6&�� �T�
� /���������������"������������������������������������#���������� �!�
� ��� ������.��� �� ������ ������ ��� ��� >6&� ����� ���� ���"�� �� ����� ����"���� ���
�2�����!��������������������������"���������������������%?�������"������ >6&!�
� �����������������"���������"���������������1�������#��������������������
��������������#����������"���
�3� ���� �������������� ������� ��
<2��"��� ���"��� ������� #��� �������� ���� �������� �� ����"��� �� �� ��� ���"��� ��
��"���� �� �� ��� C0��HQQF�� <�"��� ����� "����� � �������� �� ��!� � ��������� �� ��
������"�!��"���(� �����2���� ����������"���������"��� ����"��"������<��������������� ��
��������"�����������.���������"����
�3�3� 4 ������������� ��
������"�������"���� �����������������������������"���������"�������!�#���
����������������"����������������"��������������")����������#�������B����������
����� ��� ������������"�� )� ������� �� ��*����� "������ ���#���� ��"����$!� �� #��� �������� ���
�
�
�
12
��� �� ���"��� �� ��� ������ #��� � �� ������"��� ��� ��� ���?����� �� ���"���� �"���(-��� ��
"�������#�������������������������#���������������!���%���������"�����2�����!�
����.������������$�� ����"�������"���� ����������"�����������������#����������"�����
���%?�����������J��B���#����������"��)�������������������#�����������!�
��#���������� �����")���� ����"�����
B������������������ ������#�������������?����#�"�������T�
J� +������ ������6�������������������@����X�
K� ����� ���� �� ��� � �� �� ���"?"����!� ���+�"����� �� �� ������"���"�!� ���"�������
���#������������������������"�"����<�������� ��)�������"���"���"��"�(X�
E� $����� �� ���6������ ���T�������� �����������"������"������X�
O� $����� � � � ������� � ������ �� ��6����T� ������� � ���� �� �� ��#����
����������(�������������������"����"��������#�����������������#�����������
�3�3� �� ������ ������ ��������
B������������ "��� ������� ������"������?�������������"����� �� ���"��� ������ )� ��
��������� �� ��������� �� �� ������"���B� ������ � ��������� �� �� ������"� )� ����"��� ��
������ K�O!� ��� #��� ��� ���"��� �� ��"���� �� �� ��� ������� ��� ������"!� ��������� ����
������"�������������"�!��"���(������������"��������������������������������������
��������"��"�������
�� ������(�� � "��� �� �� ������"�!� �(-��� ������?��� ��� ��������� �� ������ �� ��
���"���������������<2��"�����������#����������������������� ����������������& �������
�������������� �0�A$� �� �� ������������ �7�A$�� B� ��������� �� ��������� �� �� ������"��
��������������������"�������#���!�������"����-�������������2�����"����0�A���
���������������"����7�A��
=��7�A!��������������"������#����������)������"����������"������������#�����
�����!� ������������ �������"��� � �2"��� ����� �� ��������"�� �������� ���"���������!�
���������� �������������������)����������������"������"�����"������������"���
��"�����������.�����(����������"���������������
���������������������������������������� ��������
J�\������"�"�������"��#������� ����"����� �������������"�����")��"����������"��������"����
�
�
�
13
=��0�A!������)�������������������"��#��������������������������"�������#������
������� ����"���!�� ���������������"��#�������������������"�����2"��� �������"���
��������"�������#�������������'�������������"�!����������� ����������"��������
����)����"�"��������2���
����� ��� ��� �� ������������ ���� � �
� � � ��� ���� ������������ ���� � �
��� ������� ���� ��!������ ������������ ���� � ���
"#� ����� � ��� "#� ����� � ���
$ ��� ���� � ��������%�� ����� ���&������� �� ����
'�(*) + , - . /0) /1, ) 2 3 (4 ( +�5 + 6*, 5*78/ +5 9 : ( ; . / 4 ( + 4 / +�< (*) . 5 +
= - /*) ( 4 5>5 9 5 ? , @ 3 (4 5>? ( ) + , - . / +4 2 + . ; 2 A ,CB 4 / +
D EF GH EF GI JF EKLH EM JH
'�(*) + , - . / +8) ( +�5 + 6 , 5 78/ +5 9 : ( ; . / 4 ( + 4 / +�< (*) . 5 +
N OP QR OP QS TP OU
V OWTR
'�( ) + , - . / +8) ( +5 + 6*, 5 7>/ +4 / +�< ( ) . 5 +
�
-������3"�&��� ������� ������ �������� ������3�
�� ��������� �� �� ������"�� )� �� ��������� ����� ����� "������� &���� ����!� ��� "��?� ���
"��� ���������� ���'��"���� E��=���� ���������������� �������� �"�������� ����#����7�A���
0�A�����������.����
�3�3� �#�A��� ����<����� ����� ��������
/����� �� ��� ���������� "��������� ���"�� ������"�� ��������(��� ��� &S0� C6��"��QEF��
�������!�)����"������"��"��� ���������"��������������������������1����������!��������B�
����� �� ����"���(��� �� ������"�� )� ����(��� ���������������"�� �� �2���� ���� ������"���
<�"�� ����� )� ��� ������� �����"���� #��� ���������� �2"���"�� ���������� ��� ������"��
�"��������"�!� ������� ���������� � �������#��� � �� �2���"�� �� ������"��������.����
������"� ��2�����T� %��� �!� ���%�� �!� ����� �$� �� �� �����"��� � ���� ���� ��� �� ����� ���
G�������"�!����"���(�������������"������������������������"��������"�����������
���������������������� ��"����"���(�� ������"�� ��� ���"�2"��� ��"���� ������� ������
�����������"���������� ��������"���������T�
J�� '���� �� ���"��� �� ��� � �� �"@����!� �� �"���(��� ���� � �� "��� �������.���
��""��"���� �����?����� ������ ����� �����!� �� �"���(��� � �� ���� ������� ��"��� ��� ������"���
�
�
�
14
�����!����"��#���� �����������"����������"�X�
K��������"�������������� �����������������"�����"����������������������!�����
�����"���������"����������������������"�X�
E���������"�!���������������"��������!����"���(�������"��� �������.�����������
"�������"������3�����������������������1����=�����"�2"������"���� ������!�
��������������"��� ��"����������"��)���������#������������(���" ����%��"����������
������.�����������������
�3�3" � ������� ���������� ����
G��"����!� ������ �� ��������!� � �� �1����� �� ���"���� ������������ �� �� ���"�� ��
��� #��� "3�� � "���� �� ������"��� �� ������ �� ��� � ���"�� ��� ��� ������ �� ���
�����������"����� ��"���� ����"��)����������"���� ������"� �����"����� ���"����
��������������������������
��� �2�����!� ��� ��� ���"������� ���� ������� ���� ����������� ����������#��#���!� ��
"��"��� ���� ������"��� ��� ������"� �� ��������� ���������� ������ ���� �� "��)�� �2"���� �
�?���� 8G60� �� ������"� ��� �����"��� �� ������"3-���� ��� ������ �� ��� �� ���"��� ��
��"���� ����������������������������������)�#�����?����8G60�)��������������������
����%�"������������"� ���������� ��������������������+�"���#��"�������������������
��)������!� �� �?�����8G60����� ���#V��"����"�!� ������"��� ������� �� �����������
�������������������2"����������������?����8G60�����"��������������"���(����
������ �� "������ B� ���"�� �� R60� ����� ��� �� �� �� "���� �� ��� ����� � "���� ��
����"��� ����"��"����!����"��#����?����"��3����#������&7>/�3��������"���������"�����
R60���"��)����"������������R60��
\������"�"���������������������"���"��"���������������������������"�������
��������"������"�������!���#��"��#������"��"�������3������"������,�������������
�������"��������#���"����������"������������������������"����������������
��������������������������������������������������� �������������������
"��"����>��������!����"��"����������������������������������������������������
������%���"�����2�����!�������������������������#������R60$��A���������K�P��=����
������������������������������"������?�������������������������2!��3����4��<�"��
� ����������������"��!��������"�������"��"������'�"��"�������������������"����
����"�� �� ���"��� �� � "��(� ��� � ��������� ���������� � ���"�� �&S0� C6��"��QEF!� BS0�
�
�
�
15
C'""���DDF� �� RS���H� C'��������DJF$�� ��� ���"��!� ���� ��� ��(!� �������� ��� "��"����� ���
�����"��������������������������"����"������G����!�B�%�"�����<�����"���R60$��������
��� "��(��� ��� �� ����"�� �� �� �� ���"���� <����� ��� � �� ��"������ ����� ������ ��
��"������������?�����
X0Y�Z>[]\�^�_ `�aCb c�d�`�_ X0Y�Z>[]e�f b ^�d�g `�h�c`ie�j k ^�g c�l
[�c�aCm�ni^�d�g c�lo>piq
r�s t�u�v8w x�s�y r�s t8u�v�w x�s�z r�s t�u�v8w x�s�{
|~}i��� �i�i���
�i�[�`�h�c�l8� �0� �1�[�`�h�c�l�� [�`�h�c�l��
X0��q � `�j�^�_ `�l e���q e�j k ^�g c�l�o>��m�^�f � �>_ ^�ni^�d�g c�lo0piq
��l�m���f b c
[�`�h�c�l��� �
�
-������3��8<��� ����������� ���3�
�3" ������������������ ������� ��
<��� ������ �� ���-��� � ���"��� ������ ���#����� �� ?��� �� ��"���� �� �� ��� #���
�����"��������� �������"������������"���������������������"������������7�A����
0�A$!�������"���������������������"!�������"����#��"�"���!���"�����"����
5��������"�!�������"��������"���� ���������������������������������������"���
���"��� �� ��� ���� ��"��"���� ���� ��������6��� "��!� ���� �� ���������"�� � ������� ��
������������W ��������������������"���������������!����������"��������"���� �������
������"�����������%�"��������"��������"����������"��"����������-��"��"�����
B����%�"��G&5665&��5����)�!)����'�����!�"����)���������'!)������!��������$�C'��"��QOF�����
�������������������������&"�������)����������%�"���������������������������#�����
��?�������"���� ��������B����%�"��G&5665&���"?������������������#���7�A���"�����
��%�"���� �� ��"����� "�"�� ��� ��"��"����� #��"�� ��� ����-��"��"������ B� ���%�"��
G&5665&� �"� � �#��"�"��� �� ��������"��"����� ��� � ��"���� �� �� ��� �� �����
������ �� ��� ������ ���� ����.�� ��B<6� �6�+���� %7���!"�� �����$� #��� �����"�� � "���� ��
�������.��������%�"��� �"�-�����"�������"���������"��� "������� ���"����� ������� ��� �� �
���������� ����������"�������� ����G&5665&��"���(����������������"������������
�
�
�
16
6&0��������������)����!���!"��"�$�C �I���"�"����QLF�����������"�������� �����������
��� ������"��� �� ������ �� ����� ���� ��� ������"��� �� ���"��� ������� �� ��������� ��
������"��"���(������G&5665&�)�0B:<0�C����"�����QMF!���� ����������������BS0�
�6�+��������&���!"��"�$� �����������B<6��>���"�� � ���� ���� "��"����� ������%��"����
���������!� �����"��� ��� ��� ��������� ����"��� �� �"�� �����!� )� ����������� ��� ���������
������"�����"��������"��"�������"��)�������%�"���#����������"������S�������"��"���
��������������������"!�����������"�������������������������������������!����������"�
�"���)������������"�������������
B�=������C>����DJF�)������"����������"���������"���� �����������.��������
���R60��B�=��������"?������������������#���0�A�����"���������"����3����!����������
�����"��"������� ����-��"��"������B�=������ "������������������"���#������")��
������"���#��������"������������� ����������"�������?���������������"����������
���"���� �� ��������� �� ������"� �"���(� ����� =������ )� �� R60-S0�� B� =������ �"���(� ���
�#��"�"��� ������ ����"��� �� �"�����($�� ��� �� ���"����"���� ����������� �� =������ )�
�������#����������"���������������"���������������<����2�����������"����������
����������?����#����������"��� ��)�������"���
B� �-R60� >"� 5�"���"���� &��"�� C7����DKF� )� ��� ���"��� �� ��"���� �� �� ��� #���
�����������������������"������,�"��������"����������W���������5�"���"��"��)����
������"�� ��� R60�� B� �-R60� �"���(� R60� ����� ������ �� ��"���� �� ���� ����� ����
�����.��� �RS���H!� R&����!� >B6!� &�R!� &B� !� R�����!� R&0$�� B� �-R60� �"���(� ���
�#��"�"����������>��������!����"������������.������������������"�����"������������
"�������������(��������������
�3� � �������*��� ����
=��"�����"����������������������������������������������"��������"���� ����
���� �� ��"���� �� �� ��� "��� ����� ��������� ��%�"���� ������� ��� ��� �� ��"���� ��
����������"����������"�����������"����3���!�"�����"���������?����������� �������
���"������"���(���������3�����
���������"��� �� �������� ��?������ �� ��"���� �T� � ����������"��� �� � �������
�"�����(�� =� ���"��!� �� ���"��� � �� ������"�� "�� ��(� #��� �?� ��� ������"� �!� ��
�"�����(!� ������ � ����������"�� ���������� ��� ��� "�"���� �� ��(����� ������
������"1���� �� ��� ������ ����������$� �� �� ������"�� � �� ���"�� ������ ������ ������"1������ � <�"��
�
�
�
17
����������" ���������*���#��"�"���������"�����������"��������"���� ��������
���#��"�"��������������"������������"�������#��"�"���������������������"��
��������"�����(��G��)���������"������#��"�"������������"��#���)���#��"�"���
��������������
����� "��)��������"����������������������� � ������������"������������%�"��"����
������"�������"���� ��������B�������������"�����(���������"��*�������������!�
*���������� ����������"�!�*��"���(� ����������"����*�����"��� ����"��"�������
=�������������!�������������������"���������������#������������� ���
��������� ����������"��)����������?��������������������������������#����"��
��� ���%�"�!������������� �0�A$� ��� ������������ �7�A$�� >������� "��)�� �� ��� ���"�
�����"+����*��"���(� ����������"��#���"������"����"����������"���������"������������
�����"����������� ������!������"��� ����"��"�����"��)��)���������������������"��
���������%�"��"���
�� �����(�� ������ ������ ������ "������� ����������� ����� ������"��!�
���������"�!� �� ���%�"�� G&5665&� �7�A!� ���"��!� B<6!� 0����$!� �� =������ �0�A!� ������!�
R60!�RS���H$������-R60�>"�5�"���"����&��"���������!�R60!�RS���H$��
=�� ��12���� ���"���!� ���"������� ��� ���������� ������"��� �������� *� ��������� �� ��
������"���
�
�
�
�
�
18
������� ����
�� ������ ����� ��������
������"����� ��"���� �����������3�����)"��������������������"���"����,�"������
�������������"����3������<���������"������#���������������������"������������
��"������ �� ���"��� �� ��� � ������� ��� ����� ��#�����>���� ����!� ������?��������
�������� ��� ������"� ������ ��� ��#����,����� �� �� ���"��� �� ��"���� �� �� ��� )� ��(�
��������?-�������������"���������������B������������"��� �������������"������?����
���������"����������"���������)���������������� ������ ����� ���������
B������������������� ����������"��������"����������"������������"��8�������
���"������������"��!�����������"��������?��������������#���������!�"��#��T�
� �9����")��������"�������"�X�
� �8�⊆��:�
� �8�����3�"�����������"����������������#�
B� ��������� �� ��������� �� �� ������"�� ��"?� ��"�����"�� ��������� �� ����#��� ��
������"����"�������#�����������������#������������B��������"�������������������
����.�������#����������� ����"������"���������.��������#����������"����������>����
����#����"���������� �������"��������"��"��!�� ����������������������0�A$�C������QMF�
��� �������������7�A$�C �I���"�"����QLF���
B��������������������� ������"����-�������������2�����"��������#���0�A�������
�������� �� �"�� �� ����#��� 7�A�� 5���� )� �2������ ����� ������� =�� 7�A!� ��� ��
��������"������#����������)������"����������"������������#����� �����!�������������
�������"�����2"��� ���������������"�������������"����=��0�A!������)�������������
������"�� #��� ������� ����� ��� ��������"��� �� ��#���� ������ � �� ��"���!� � �� �������
������"�� #��� ��������� �������"��� � �2"��� �� �� ���"��� �� ��� � ��"��� �� ��#���� ��
������Y����.�������������#�����������
<�� ���"���� �� ��"���� ������� ����� �2��"��� ��,����� ���"��� �� ����<���� ���"���
�������������������������������"����#��#���������"��������!������������������
�
�
�
19
������T���������!����-������"���#�����������"�������?����� ��������������������"�����
����������&�����!����-��������"���#��������"�����%��������������������������������
�� ��"������ ������������������"� ���� ���"����������������.��� ����������#������
���� ���0�A$!������"��#������"����������%����������������������������������
��"������ ������!����)���������������"��� ����������"�������?�������������"�����
�� ���"��� �� ��� ���������� �� �� ������"�$� )� = -'�����"�� ��� ������"�� ���%��"����
C0��HDDF���
B�"��������#����� �������"���������"����"������"��"����& ��������� ������������������
�70�A$� C������QQF� �� �� ����������� �/�A$� C6�/����DEF�� <����� ����#���� ��������
���"����"������7�A���0�A��
=�� ���.��� ������"��� ������� ��������� ��� ����#���� 0�A� �� 7�A� �� ��� ����� ������"�����
��������������������� ����������"���>�����!�������������������#�������������"��������
��70�A�����/�A��!��������"�!����������"������"�����������������)����"����������� �����
������ �� ��� ������������!� ���"�� #��� )� ��� �#��"�"��� #��� ���� ����� ���"�� ����"��
��"�����"���
�3� C ���� �
=���� ������ �� ���?� � "����������� �� ������ �� ��� ����������� ��� ��#���� )� ���
���%��"��������.����'������������.���� ���������"����"�����������������(�����"��
����#���� ���� "��������"����"��� "��)���(�����"������#���!����)�� ������� �����?-����
#��$��������� ��)������������������"������T�
���J!�����!���$!�
������)�������� �����J!�����!������ �����"����"����������� ���
'�����"�� ����� ���� ����������� ��� ��� ������ �� ����������� ��� ���������!�
���������������������������������"�����%��"��������������"��������,�����������
8���$� �� ������ ����.��� ����� ��� ������"� ���%��"��� )� ��� ���"���� �1���� �� ���� ����
�2������������T�
*;$<=���J;$J<!���!���;$�<!�
���� �J!���!� ��� � �� �������� #��� ��������"�� ����.��� �� ������ �� ��� ��$J!���!$�� � ��
"����������?������������"�"���#�����������"�����"����"����B�?"����*;$<�)������������
������"� ���� �����"���������"� )�������%��"���� "����!� ����� "������� ���� �����
�
�
�
20
�����?���� ���$��������?����� ���$� � �������������"�� #��"������ �� "��� �� ��"��� � ��
�2��"��������"��#��"�����������������#������������"�)������"����$�⊆�$J�∪�����∪�$���B��
��������≤!�≥!�<!�>���≠������������������������"��������� ��)��2�����������,�"�����
��������������������������������� ���������������������"���)��"��"�����(���������
�����"��� � �� ��(����� ��� ��� ����� �� ���� <2��"�� ��� ���������3���� ���"� ��"���
������,����� ��8���� �� ������"�� �� ����� �-���%�� �-%��� �� ��� ������ �� ��� ����������
�"��)���������������"�����%��"���$�C������QQF��B�����������2������T�
$����������"��������� ���������#������"�����������"����"���!����������T�
*;!���>�����<=��������;!���>�����<#�
�$����������"�*������.�������������!����?�!����"�������"����"���!�������������&���������
#�����������%����"����"�����!����?����������������"����������%��� ����"��������������������
"��)����"����"��!���T�
*;!���>������<=��������;!���<>��!����?�;!���>������<#�
�$�������������������"����$!����)����������� ���"��� �!����#���������������
���������LD����������������2����T�
*;!���>������<=��������;!���>�����<>��!����?�;!���>������<>������@�AB#�
$�������������������"����$!����)��������������"��� �!����#����������������
����:������� ���2����T�
*;!���>������<=��������;!���<>��!����?�;!���>�C���)�9<#�
�������������"� � ��������%��"���� ��������8���!� ������� ����������������������
�����#V��"��"��)�����������������#��#��������"�����"���-������� ���B������"���
����� ������������"�����������������)�������%��"����"����������"�������
���������������"�-����������
�3� $� ���:��:D�@�
=�� ����#��� ������������ �7�A$� �� ��������"�� �� ��#���� ������ "��� ���
���������3���� ������� ��#������� ���"��� ��������������"�!� ��� �� ���� ���� ���
��#���������!�"��������������"���#�����")�������"��������"��������!����������������
E�J��G���������"�������#������������"?������������������ �������������"����������
"�� ��� �� ���������� ����� ��"��� ��� �� ��#���� ������ �!� �"���(��� ������"�� ������ ��
�
�
�
21
���"��������������"����#����������������#���� ����G&5665&�C7���-6����QMF�����8<:6<&�
C���QLF��
��� � ��� � ��� �� � �
��� � � ��� � � ��� � �� � �
� �0� ¡¢
��� � � ��� � � ��� � �� � �
� �0� ¡�£
��� � � ��� � � ��� � �� � �
� �>� ¡¤
¥*¦ § ¨ © ª0«0¬ ® ¯ «*
° � �°�� � ° � �
°�± �°�± �
�
-������3��$� ���:��:D�@3��$��� ������*���� ���6������ ���E������ ������*���� ���6�������� ������ ������2��� �������� ��������6���� �������������� ��$3�
�
B��������������������"�����������"�������"���� ������!���"������������"�����
���7�����������'�����"�!�� ������#���������!�����#�������"������������"���<����� ��
������(�������������T�
�� ��� ����C&�����DKF�������"�������"���� �������'�)����"������ !��!���!�����
� �)�����*�����"�����!��2������������������������ ������������"��� !�
� ��)�����*�����)�!��!��2�������������������������������������"������B�����"�����
������������������#������"���(������"�������������������"��!�
� ��)����������!�����"��� ������
G�����������"���� ����������"������������T�
8�6������ ���T������������ �����#�������������������2����������������������
�������������2�����!������"� �����%�"��!���"��� ����������"����"�����"���$��'����
����� ������ �� ����� "������ ���� ��#����� ���������!� �� ����"��� � �������?� ������ ��
��"�����!��������"�!� ����������"��� ��"��� ����� ��"����� ������������� �!����������
"������� ������"���� � �� ���� ���B� ��#���� ������ "��)������ ���� ����� �� ��#����
��"����������#���������� ���
8�6���� ���T� � ����������������#�������"��"��)��)��2������������������ �$���
���������������������������B�����"��������")��������%��"����������������.�����
���"��� ������ �� �� ��� ����� ����.��� "��� ��� �����3���� ��� ��� ���"�� �����������"��
���������#�������"���($��
�
�
�
22
4������� T����7�A!���������"���������������������"��"���� ����������"�
*������������������������������"������"���(���������������"��)�����������T�
� �� "�� ���� �� ������ "!� ��� ���%��"�� �� ����.��� ������ )� �������������� ���
������������������.������������ ������������"��������"+���������� ��"��
� ��� ����.������������������"������� ���"+�������#��� �� �������������� ���"��
������
� ��� ������"� ������ � "� ����������!� ���"����#��!� ��� "��� �� ���"+����� ��
��#���������!�� ���?�����"��.����
������� ������#�����������������������������"������T�
(J;$J<!���!�(�;$�<���";$<!�
���� ";$<� )� ��� ���� �� ������ �� (J;$J<!���!� (�;$�<� )� ��� ������"� *�� ������ �� ����.��� ��
��#���� ���"�� ����")�� ��� ���%��"�� �� ����.��� �� ���"��� �����$�� B� ���%��"�� �� "����"���
$J���$��⊆�$�� �� ���� �� ";$<� ���� ������� �?���� ��(��� �� ������ �� �� ������"��� >����
����!������ ��";$<����?������"��������� ����"�����������"��*��#�����������
��������������"������"�!���%�������2������E�JT�
8<��� ��3�T�&������������"�������"���� ������������������"�3�����"����������2!��3����4�
��%�����#������ �����������������������T�
F1: Filme1(título, ator, ano) F2: Filme2(id, título, ator, ano) F3: Critica3(id, crítica)
'������������#���������������������.��T�
Filme(título, ator) Crítica(título, crítica)
B���������������"���������#�������������T�
Filme1(título, ator, ano) � Filme(título, ator)
Filme2(título, ator, ano) � Filme(título, ator) Critica3(id, crítica),
Filme1(id, título, ator, ano) � Crítica(título, crítica)
=�"��#�������� �������)������"���������2�������3�������� �� �-����)������"�����
����4�������2!�����������E�K��������"�� ������� �������������(������������"�����������
#��� ����� ���?� �����"�� ���� � ��� �� � ������"� ����2;�-����>� ����>� �!�<� ���� � ������"�
����3;�-����>�����>��!�<��
�
�
�
23
² ³
²�´
µ�¶C· ¸ ¹�º
²*»
µ�¶�· ¸ ¹�¼
³�½
µ�¶C· ¸ ¹¿¾
ÀCÁ Â*à Ä�Å0Æ1Ç*È É*Ê Æ*È
��
-������3��$�DF�8<��� 3�-F�-��E��F�������3�
�3�3� ��G������ �$�D�
��������������������#���������� �)� ����������"���������� �������%��"�����
���"+������������%��"����������� ���������������"���� $���
�� ���� �� "������� ���+�"��� � ��� ���"��� �� ��"���� �� �� ��� '� ^� � !� �!� ��!�
����������������������������������'����������������#�����"?��������������
����.�����������������")������.�������"�����"���#������"���*������.����� $��/�������
�!� ������������� #��� �� ���"�,�� � ������� �� �� ��#���� ������ ��B� ��#���� ������7�
���� ���"��� ���"���.��� � ������"�� �� ���� ���"�,���<2�����T� ������� �(��� #��� ��� ���� ��
)������� ����")���������������)����QD��
'������������!������������"���������'�#��#����������������� ��
�� ��� �"�� C&�����DKF���� ����� �� ��� �������� ��� '� )� �"�� ��"��� ���� �������� ���� ��!�
����������"�!���"������'������������������T�
� ��)����������������"��� !���"��)!����"���(�"��������"���.����� !�
� ��� �� ���� �� "� �� !� ��� ���%��"���� "����� "�� #����� "������ � "� )� �#������"�� ��
���%��"����"����������"������������"��������"��������!���"��)!�BD ggQ ⊆ ��
�������� ������ �������#��� ���"��� � ����������� ��!)D(��T� ������#�����������3���
��� �� ���"��� �� ��"���� �� �"���(��� �� ��#���� �����!� "���� � �� � �� �����������"��
������"���C7����QQF��
<�"?� �������"��#��!��������� ��� ���"������ ����� �����������"�7�A!� �����.��� � ��
�7������<��������"�����%�����.���� ���2"��� ���2��"������"���.��������#���������������
������������������������)���������>���"�"�����#��"����$��������"����������������
7�A� ���� ���� ����� �� �����!��� ��� ������ ��� ����������� E!��� C0��(�����DEF!� ��"�� )!� ���� )�
�
�
�
24
���"���(���������,��������������!� ����������������������!�#���)���"���
��������������� �����������������������%��"����"����������"����������.���
�����������"��������������"����G�����������)�������������#������������������������
��������� �� �� ������"�� ��� 0�A!� ���)�� "�(� � ����"���� �� � �� ����� �����������
���"���.�������#�����������
�����������������������������"���.������ �����"�����������������������"�������
7�A!�����������"����� ��"��.������#���������"����#�������#���������� ��%��2����������
"��������������������"��������������"����������"�������C:�����DKF��=����������!��
���������� �����������������"����"�����������������"�������������� �����?������������
���"���.�������"��������������������������
�3�3� ���� ������ ����� ��������� �$�D�
����������� �����7�A�)��������������"��������%��"����������"�������������"���������)�
�2������!� ��������� ����� �����"��� ��� �"������ ���� ��� =�� 7�A� �� ���� �� ��
��#���������� "��?���� ������"� ������ �� ���"��� �������"� �����!� ������ ����� ��"���$��
>��������!�#�������������"�)������"�������"��!������������"������������"���������
����������� �T�
J$ 5��"������#��������.�����" �������������"�!��
K$ >�����������������.���������.���-����.��!�
E$ :����������������"����������"���������"����������
���������������2������������������� ��������� ����������"�����7�A��������2������
E�K���
8<��� ��3�T�'������������#�������������2������E�J��&���������������"�����������
#������������ ����"�������������������!T�
Q(título):- Filme(filme, ‘Matt Damon’)
B� ���"��� ��������� ������� �� ������.��� � ���� ������� �� �����"�� #��� ��� )� �����"�
�����������"�����2�#���)����� �����J����K�������!�����2������������������"T�
Q1(título):- Filme1(id, título, ‘Matt Damon’, ano)
������3T�
Q2(título):- Filme2(id, título, ‘Matt Damon’, ano)
�������������"��!�����������#����J�������"����T�
�
�
�
25
1. título = Brothers Grimm, The
2. título = Ocean's Twelve
3. título = Bourne Supremacy, The
4. título = Jersey Girl
���K�#��������"����T�
1. título = Eurotrip
2. título = Ocean's Twelve
3. título = Stuck On You
'������2�^��J�∪��K����������"�� �������"+����$!�"��������������"�����������"��T�
1. título = Brothers Grimm, The
2. título = Ocean's Twelve
3. título = Bourne Supremacy, The
4. título = Jersey Girl
5. título = Eurotrip
6. título = Stuck On You
��� ���"+���� )� ���"����� ���� ��� ��� ���� "����"���� =����� �2�����!� ���������� #��� ��
"����"�� "�"���� ���"���#��� ��� ���"+���� �� )����� >���� ����!� �� ������6���!F�� 5���(�� ������
����������(���������"��
�3�3� ������������������ ������ �� �� �$�D��
B� "������ �� C'��DKF� ������"� ��� �����"��� ��� �����"�� ��� ���%��"�� �� ������"��
�����"�� ��� ������"�� �����"��� � ��� ���"��� �� ��"���� �� �� ��� �� ����� ���� ��
����#��� 7�A�� �� ��������� ���"����"��� ����� �����"��� )� ��������� ������ � ������"� �� ��
��#����������"������������������������#������������"�������"������������"��B������"���
)� ��(� �� ������� ���� ������"�� *#����� �2"���� ���"���"�� �� ���"��!� �2������� ��
�����.������+�"�����2������������#����������"����������
&������'�^�� !��!����������"����� ��"���� ������!� ����������������������
�������������������������"�����������#���������� �� �"�����������"��!��������"���
��")���������������"��7� ;�<���2��� �����$����������������"�������#���������� #�G��
�2��� ��)����"������������������"������������ �#���)�������"��������<����2��� ��)��
���"����"��� ���������� ����� �����"���� B� ���"�� �� ����������"�� )� ����� ���"���
�"��������"�T� �7� ;�<�)� ��������� �����2��������� �� � ������"� �����"�"�� )� �����"�� ��
������������������
�� �2��� �� � ������"� �� ���?���� �� ��#���� �����"��� ��� ������� ��� ��"���(��� ��
�
�
�
26
������"�������.������+�"������"������������"�������#���������� �����)���?��������(���
�����)�#���������.������+�"������"������������"������ ������������"�������������������
��"����� �� �����(� ������ � ���� �� ������� !� ���-��� ��?-�� ��� ����� � ������"� �7� ;�<��
������*�������"������������5����)����"������������T�
J� :��������-���������"�"��������������/������������������/9�������"��)���
������������� $��>���"-����8��������"���������"��
K� '���"�1�-����?��������������� ������������9����������"��������C7�����QLF$���
E� :�"���-�������������"���������"��7� ;�<�������������� ����"�����������"��
� ���(�������������?��������������� ���������
7��"�-��� ������ "������ #��� �� �����"��� )� �����"�� �� #��� �7� ;�<� )� �#������"�� ��� ����
������"������#���������� ��
B�"������%�"��)���&<W�5&<���%��!���G�����"�!���!�'!��"������%��!����$�C&�����DKF�"�����
��%�"���� �� ����������� �� ��������"�� ��� ����� ���������� ����� #��� �����"�� �� ������
��"������"��*�����"����������"����3������������"��G����B�&<W�5&<�"�������#��"�"���
��"������ ���� ��� ���"��� �� ����� �� �������� �� ���+�"��� #��� �"���(�� ��"�������
���"�����V���� G��� ��"������� � �� ������� ��� ��� ��� �� �����3���� �� ����� ���� ���
��.��� �WE'� �R60!�R60�&����!�:>��&$$����� ������"� �� ���?���� )� ����� ��� ���
���"�� �� ������"� #��� �������� �� �������� � ������"� ������-��� "��)�� �� �%G�'�%�
!)������!�!������&5=���$������������������������� ����#����"���������?�����'�&5=���
)�������"�������"���� ������������������������#���7�A��B�����������"�������
������"�������&5=���)�����"�"���������������"�������T�
J� 8<����� � ��� � ������� -� � ������"� )� �2���� �� ����� ���� �� ���"���.��� ��
��"����������#���������X�
K� 4������A��� � ���� �������� �� ���� -� ��� ?"����� � ������"� �2���� � ��
�"�����(���"��)����"�����(� �����������������#���� ���������"�������2�����
���������"��X�
E� 4������A��� �������������� ����-���������"�����(�����������������!���"��������
�� �"�����(� �� )� ��#������� <�"�� ����� �������� ��� ��� �� ���"��� ������ �� ���
��(���������������������
O� �5����� ����� ��������<������� -�#���� "��� ���������������!�#��� � �� ������"���
����������"!�� ���"�����(�!��������"��2����)������"������������������
�
�
�
27
��������"��&S0������"����������"�����������"����������
B� ���%�"�� &56&� C�����QLF� ����3� ��� ������ ��"������"�� � ���"��� �� ��� ��"������� ��
��"����3����� B� &56&� ��"?� �� ����� ���� �� ����#���7�A�� B� ���������� �� ������"�� ��
&56&�)����������#�"�����������"��T�
� �� ������ ����� �������� -���"����������"�� ���"����������"����� ������� ��#���
� ����#����������������������*�������"����"������������������������������
����� ���� ��������� ��� ����(��� ���������"�� �� #��� �� ���?���� ��#����"���� 5���� )�
���"�� ����������� � ������"� �� ���?���� �2������ ��� "�������� ��������� ��#����
���������������"����������"������������.�������������X�
� &��� � ��� � ������� -� �� ������� ��������"�� ����"�1�� ��� ����� ��� ��������� ��
�������.��� ��#����"������ ������"� ����������B�������������������� "��� ����T�
���������� ����������"�����������"������"��!��������"� ���������������"��
��� ��"�!� %��� �� �� �����"��� �� ������"��� ���"��� �� ��(�����"�� "�����?���� ��
�����"��X�
� #�A��� � ��G����� � � ���� � ��� � ������� -� �� "�������� ��������"�� �2����� ��
����������"�� ������ �� ���"�,�� ��� ������ �� ��� ��� �(��� ��� �"���(� ��
���+�"�����������"X�
� 8<����� �-��������"�!���"����������������"���2���"����������������"�%?��"���(���
B�� ������ �� ��������� �� ��������� �� ������"��� ��� �����.��� �� ������ ��� �?�����
����������������)������?.�������"���C�����QLF��������� ���������������������������,�����
����?�������������"�������������"�!����)������"�����"���#������"�!����%��"������"���
��?�������
�3� 1 ���:��:D�@�
B������������� �0�A$��������������"��� ������������ ������"���#���)����"�����7�A��
<��� �������� ��� ��#����� �2���"��� �� ���"��� ����� ���.��� �"�����(�� ������ �������
���"���� �� ��#���� �� ���� ��� =�� 0�A!� �� ��������"�� �� ���"�� �� ��� "��� ���
���������3�������������������"������#����������������!������"���� �������"�������
� ������������� ��� ���6����� ��������.�������#��������$��A���������E�E��
�
�
�
28
Ë�Ì>Í Ë�Ì*Î Ë�Ì*ÏÐ Ð Ð
Ë�Ñ�Í Í Ë�Ñ�Í Î Ë�Ñ�Í ÒÐ Ð Ð
Ó*Ô�Õ Ö ×ÙØ
Ë�Ñ Î�Í Ë�Ñ Î Î Ë�Ñ Î ÒÐ Ð Ð
Ó Ô�Õ Ö ×ÛÚ
Ë�Ñ Ï�Í Ë�Ñ Ï Î Ë�Ñ Ï ÒÐ Ð Ð
Ó*Ô�Õ Ö ×ÙÜ
Ý8Þ ß�àCáCâ¿ã�ä�å æCçCãCå
è�Ì>Í Íè�Ì>Í Î è�Ì*ÎCÍ
è�Ì�é�Íè�Ì*é Î
�
-������3��1 ���:��:D�@3��$��� ������*���� ���6������������ E������ ������*���� ����6��������� ������ ������2$��� �� ���������� ����6���� ����������*���� ���6������ ���3�
������ ����������"�����������������#�������������������2�������������"������T�
(;$<���"J;$J!�HJ<!���!�"�;$�!�H�<!��2>�###>���>�
����(;$<�)������� ���������"J;$J!�HJ<!���!�"�;$�!�H�<�)����������"�* �������������.�����
��#�����������B����%��"����"����"���$J���$��^�$��B��?"�����"�;$�<!��I�2>�3>###>!!�� ������.���
����#������������+!�+�I�2>3>###>�!�� �����"���.���������"�;$�<��
B������� #��� $J���$�� ^� $� ��������� #��!� ��� 0�A!� �� ?"���� "� � ������"� ����
�����������"��"������"����"��$����"������$��
8<��� � �3�F� '�������� ��� ��"��� ���"��� �� ��"���� �� ������ ������� ��%�� ��#���� ������ )�
��������������2�T�
Filme(título, ano, diretor, gênero) Americano(nome) Crítica(título, crítica)
B������ �T�����"�����������")�����)�������(����������"�����������������"���
��JQLD������"��� �-�������")�����"��������(�����������JQQD��
&������ #��� "����� ��� ���"��T� �J$�2!� ���"���� "�"����!� ���� �� ���"����� �� ���)���
������������(�����������JQLD����K$�3!����"�������"��������(�����������JQQD��=��
0�A!��1��������������������������"���������������"����1�����T�
F1: V1(título, ano, diretor) � Filme(título, ano, diretor, gênero), Americano(diretor), ano > 1960, gênero = ‘Comédia’ F2: V2(título, crítica) � Filme(título, ano, diretor, gênero), ano > 1990, Crítica(título, crítica)
B�������#������� ��� ���"��J�2� �����"��� ����.�������� ��������!�� ��� ���� ��3��
���"��K������"�������.���������� �-���!�����������E�O��
�
�
�
29
ê ë
ê>ì
í�î�ï�ð ñ ò
ó�ô
í1î8ï�ð ñõ
ö>÷�øCùCú�û�üþý�úþû#úCý�ÿ ü������
ó
�
-������3"�1�DF�8<��� 3�-F�-��E��F������� ����F�������3�
�3�3� �� ������ ����� ��������� �1�D�
=������#���0�A!����"��������� �������"���������.���#���� �������������������#����
������ �� �� ������"�� �� ���?���� � �� ������� �������� �� ����� ���� ����� ��#����� ��
��������� ����������"�����0�A���"?����"���"�����������������������������������
������"����������.��!�#��������"����"����������������������?����"��� ��������������
�����+��������������������������������������������"������T��"���(� ����
������"�!����"��� ���������3���������������!���"���� ��������������������������
������ �� ��������� C/�DEF�� � 5���������"�!� �� �������� ���� ���� �����"�� ����� ��� �������
&���������������"��������������#����������$���������������������%��"�������.���
�������2!���!!�����������������#����� ������T�)���������������������!�����������
��������"����2!���!!�_�
=1�����������"�����������"���������������� ����������"�T����������.����#������"�����
���������.����2�����"�����"����
�� ��� ����C0��HDDF��:��������.����#������"��$��&���������������"�����������%��"����
���.����^�2!���!!�����������"��8����?������������� ���#������"��������������T�
� �8��������������������.������!���
� �8�)��#������"������
�� ��� ���� C0��HDDF��:��������.����2�����"�����"��$��&���������������"��������
���%��"�� �� ������.��� �� ���.��� � ^� 2!���!!�� �� ������"� �8� ���?� ��� ��������� ��
�2�����"�����"��������������T�
� �8��������������������.������!��
�
�
�
30
� �8���"?����"������!���
� � ���2��"�������������� ���2!�"��#����8�⊆��2�⊆������2�� ��)��#������"����#�
B� �������� �� ��������� �� �� ������"�� ���� � ��� ����� �������� �� �����3���!� �� #���
���� ���� �2������ ����� ��� ������� ��� ���� �� ����"�� �� ������.��� �� ���"��� �� ���
�����!��� ���"����������� �������"������������"���������� ������"�������������"�
����������#�����������>��"�����!����-����(���#������"����������������"��������"��
�"�����(�� ��� ������"�� ������ �� ��#���� ������� S���� ��� ������"� �� ���?���� )�
�����������#���������!�����������������"�!����"�"�!���������"���������������������
��� ������"� �� ���?���� ��������� �� ������"�� �� ������"�������"����� ���"��� ������
B������������������� ����������"����0�A!����������������#��������2������E�E�T�
8<��� ��3"T�'�����������������"�������������#�������������2������E�ET�
Q(título, crítica):- Filme(título, ano, diretor, ‘Comédia’), ano ≥ 1950, Crítica(título, crítica).
G��������������"����������� �T��
Q´(título, crítica):- Filme1(título, ano, diretor), Crítica2(título, crítica).
B������� #��� � ���"��� �� �!�� ≥� 2JKB� � �� ���� ���!� ���"�� #��� ��� ��� �� ���"��� %?�
�"���(������������� ���B�������#���������������� ��� ��)��#������"��*�������"��������!�
������1���"���������������(������������JQQD�� ��)�!������������2����3�� ������������!�
���)�������������������
=�� ���"�2"�� �� ��"���� �� �� ��!� �1�� ������� �����"��� ����� �� ���������.���
�2�����"�� ���"��� #��� ����3��� ����������� ������"�� ���������� ��� ��� � ������"��
A?����� �����"���� ������ ��� �������� C0��HQL!� 0��HQL�F� �� :����� 5������� C>����IQM!�
S��QQF� ����� ������"��� ��� ���������� ������"�� �����-��� ��� ���.���� G��� �����"����
�������������������.����2�����"�����"������ �����������"�������"����������T�
�3�3� ��� �� �������� ����/��H����
B���%�"�����������"����������C0��HQL!�0��HQL�F�)��������������������"������?����#���
��"?����������������#�������������������"��#����������������"���"��*�����"��������
����������!��������������.�������������#��������������)������������������"����������)�
� ������"�T� �� �,����� �� ���������.��� �� ������"�� ���� ���� ��"�����"�� ���(��� ���
����������������"���������%�"�����������"����"����������#�������.������������
�
�
�
31
������"������ �� �����%�"�������� �����%�"���� )� ���?"����#��� ����.�� � ������"��������
����!�������������"�*;$<T-��J;$J<!���!���;$�<!�����)���������%�"�����
>� ��� ������"��!� �� �����"��� �������� ��� ��� �"���� 5��������"�!� ���������� �?���
������$�)����������������%�"���������'�����������"��?����.���#���� ��������"������
��������� �� �����%�"���� �������"�� ���������� ������ �� )� ���"� ���������� ��� ��� ���"����� ���
�����%�"���� #��� ����� ���� �������� ���� �� �����%�"���� �������"�� �� �������� \� �����"�"��
��������#��������������������"����,�"����������3������������� �!��������"��������"���
��������������%�"����#�������������������������������%�"��������������=��������"�!�
��� ����� ���"�� �� ������"� )� ����!� ���������� ��� ��� �� �� ���������� B� ����� )�
���������"��)����"��"��������������������"?����"�����������"����
8<��� ��3�T�'������������#������������������������T�
Alocado(estudante, dept) Matriculado(estudante, curso, ano) Curso(curso, número)
'�������������.���2!�3!�4���L����2!��3!��4����L!�������"�����"�T�
F1: V1(estudante, número, ano) � Matriculado(estudante, curso, ano), Curso(curso, número), número ≥ 500, ano ≥ 1992. F2: V2(estudante, dept, curso) � Matriculado(estudante, curso, ano), Alocado(estudante, dept).
F3: V3(estudante, curso) � Matriculado(estudante, curso, ano), ano ≤ 1990. F4: V4(estudante, curso, número) � Matriculado(estudante, curso, ano), Curso(curso, número), Alocado(estudante, dept), número ≤ 100.
&���������������"��T�
Q(E, D):- Alocado(E, D), Matriculado(E, C, A), Curso(C, N), N ≥ 300, A ≥ 1995.
���������.���%!��!� !�����M����������!�������"�����"�!�������!��!�����!������!��!����!E������
=���������������!��������"���������������������������%�"�����������"��B������"��
)����"�����G���� E�J��B�������� ���������;%>��<� �������?� �����.���3� ��L!����"��#��� ����
�������� ��?"���������� ��� �����������"����B�������� ������������;%>� >��<� �������?� ��
���.���2!�3���L������ ��4�� ��)�����������������!����#����������������≥�2JJK����!��≤�
2JJB�� ����"����"����������"��"��$�� ������!������������ ����; >�M<��������?����� ��2������ ��
L� � �� )� ������� ���������!� ���#��� ��� ��������M� ≥� 4BB� �� !E����� ≤� 2BB� � �� ��"����"��
�
�
�
32
��������"��"��$��
Alocado(E, D) Matriculado(E, C, A) Curso(C, N)
V2(E, D, C’) V1(E, N’, A) V1(S’, N, A’)
V4(E, C’, N’) V2(E, D’, C)
V4(E, C, N’)
2���� ��3��� ���I� �� �����H���3�
=�� ������� ����� �� �����"��!� ���� ������� ������"��� ������������ =�� �2�����!� �,����
������� �����������#������������������.���)��%��� ����2���3�����������T�
Q'(E, D):- V1(E, N, A), V2(E, D, C), A ≥ 1995.
��� ���?���� #��� ������ ��� ���� �� ��� �����%�"���� � ������"� )� ���� �� ���?����
�����"�����=�������"���&A/�C6�"�DJF!� �������"���������"���������!���������� ��������
����������%�"�����<�"��"�"�!������� ���1����?���������������������1�����"��"������
��"��"��� B� &A/� ��"���(� "��)�� �������� �� ���?����� �����"����!� ��� ������?���!� ���
���"����(�� �� ���"���.��� �� ������ �����"�� ��������?����� �����"������ '�������� ��
���?����� �����"����� ���")�� ����� ���.��� #��� ������� "���� ��� �����%�"����� #��� ��
���?����������"�������������
B������"���6���'���C �""�����DDF�������!�������������!������������#����������"���
&A/��B�����������"�������������"��� �������?����������?����������"�������������"��
=����������"���������"���6���'��!�����! �!���������!��6'>$�����������"���������
������ ��� )� ����������� ���"��� ��� ���%��"�� �� �����%�"����� ����� �� � ������� ����
������"���B��6'>��������������6'>�C �""�����DDF���������"���6���'��������������!�
������"�����"�!��� ���������������%�"��������������������?����������"�������������"���
&A/�� =� ������ �"�!� �� �����"���6���'��� ������� ���6'>� �� ���� �� ���������.��� ��
������"���<�� C �""�����DDF!� )����"���#����� �����"���6���'�������"� � �������������
�����"�������������������"���&A/���������"�����"���
B� "������ �� C/�DEF� ���"�� #��� ��� �����"���� ���� � �� ��������� ���"���.��� ��
��"�����!� "��� ����� ����3����� ����������� =����� "�����!� ����� ��"����� ��� �����"����
�����������������������������"������������.�����������"����������.�������������
������3����������������
�3�3� ��� �� �������� ������������5������
���)���������������"��������������������C>����IQM!�S��QQF�)������"���������%��"��
�
�
�
33
�� ������ ����� ��"���� !(������ #��� �����"��� �� ������.��� �� ���.��!� ��� ��%!� ������ #���
���"�������������"�� "�������� ����.��������������� ���"����� "����������.����
>�����!� ����"�"���� ���?����� �2��"������� ��� ������.��� �� ���.��� ���� ����.��� ������� ����
����������� ������ ����������� ��������� ������� ������"��!� �"���(���������%��"����
���.����)�����������"������������� �����������������������������������)"�����
"�������� �����C>����IQMF�������)"�����%��� �-������� �����CB��DEF��
�� ��������� ��"���� ��� �����"���� ������ ��� ������ �������� )� ��� ����������
������"������� ������ ����������������� ����"�������� "��������������� ��������"����"��
�������"�� ��)�!����#�����"�������%����������!����������� �����"��?�������#��������
����������������.�����������"����B���������������������������������"���"���������2���
�2�����������
8<��� ��3)F�&������#���"��������������"����� �T�
V3(dept, c-nome) � Alocado(s-nome, dept), Matriculado(s-nome, c-nome).
'���"�1�-���������������������"�����%��� ��������������� �T�
Alocado(f1(dept, X), dept):- V3(dept, X). Matriculado(f1(Y, c-nome), c-nome):- V3(Y, c-nome).
5�"��"�����"�!�����������������"3��������������#���������������"����������;����>�!���<�
���2"��� ������ ��4�)����������������"��������������.����������������������������
���������� ����3� ����� �������.��� ������� �� ������� �� ���"��� <�� ��"�����!� ��� �(� ��
������"�T�
� ����� �������������")�����"����������;H>�����<����������������]X�
� ����� ����������������")�����"����������;H>�!���<�������� ��������]��
���������2�������#�����������������������Z�)�����������������?"����!����������
�����������������f1(dept, nome)��<������!����-��������������������������"�����?����
�2��"������ #��� ������ �� ������ �� �� ���.��� �� ������ ��������� ���������� � �� ����� ���
�������������������������
����������� ���������"��������������%��"�������.����)�����������#���������T�
� �������������������X���
� �������"����
8<��� � �3(T� &������ � ������"��� ��� ��� ���"���"��!� ��%��� ��"��"��� �� Z/���� ��
>��[���" �������!�
�
�
�
34
Q(dept):- Alocado(s-nome, dept), Matriculado(s-nome, “Banco de Dados”).
������ ��4����������"����T�
{(CS, “Banco de Dados”), (EE, “Banco de Dados”), (CS, “IA”)}
���������������������������"����������"���"����T�
Matriculado: {(f1(CS, “Banco de Dados”), CS), (f1(EE, “Banco de Dados”), EE), (f1(CS, “IA”), CS)} Alocado: {(f1(CS, “Banco de Dados”), “Banco de Dados”), (f1(EE, “Banco de Dados”), “Banco de Dados”), (f1(CS, “IA”), “IA”)}
���������������"���������2"���.������������"�����������"�� ����%%��
�3�3" ������������ �� �� � ��� 6���1�D�
B� ���"��� �� ��"���� �� �� ��� G�I���� C5���QQF� �"���(� �� �����"��� �� ��������� �� ��
������"��6���'��������������������"������?��������������#������������������"���
�������B� ���������� �� ������"�� ��G�I���� ������.�� ��� ��������� � ������"� �"���(���
����!"��������������7�����!� C5���QQF��B�G�I���� "����������������"������������#��������
�����������������!�����!(��"�!��������!��������<��������������"�������"��#��������"����������
����������������"!��2���"�-������������"��"����!������������""��"���������"�����"�������
����������������������B����������"�����������������������"����G�I����� �T�
J� ����� � ���� ����������� ��-����"?����������"�����������")�����"���"�������
��"��������������"�������������B���������������)�������� �����+�"�����
���"�,�� �� ���"���� B� ������� � �� �������.��� ������ ����� �� ���"���� <����
�������.��� ����� ������ #��� ��� ���"��� � �� �������!� ���� �2������� �������"�!� ��
�"?������������"�����""��"���������������!�"������������"���������!���"�����
������.��!���"�����"��X�
K� �� ������ � ��� � �������� -� ��� ������"� ������ �� ��#���� ������ )� ��"������ ��
��������"������������� ����������"�!�#���)��������������"���6���'��X�
E� #�A�� ������ ��������-����"���(�����������"��"���������������"����������
��� ��� ����� �� �2���� �� ��� � �2���� �� ��� ��� ��������� B� �"���(��� "��� �
��������������������������!�������""��"�������������%����������������"���<���
"��)������(� �������������������������"���"�� �""�������"���� "�������
�2���� ���
�
�
�
�
35
�3" $� ���:��:D�@��<�1 ���:��:D�@�
'�����������#���� "���������"�����������"������=��7�A��"��������������
��� ������"� "���-��������� ������2!� ���)�!� � ������� ��� ��#���� �� ���"��� ��� �
���� ���������� ��������������"�!����-������(�������#���������� �!���#���)����
"�������"�"��������2��
B�0�A!����"������"����7�A!�"���������������������������!������%!�?������"���
�� �� �� ����� �� �� ��� ���"�� ���� ����� ������2��!� ���)�� � "���� �� �������� ���
������"�"���-������"��������2��B�0�A����"��������������������� �������"���.�������
������������������"�,���
�3� #��� ���� 6����
��)�� �� 7�A� �� 0�A!� ��"���� ����#���� � �� ������"���� & �� ����� �� ������������������
�70�A$�����������������/�A$����������!���������������������"���������������
�3�3� $� ���:1 ���:��:D�@�
0����������������� ���� ���"���� ��������?���!����"��#���������.�������#����������
� �� ������������ �2"���"�� *�� ����.��� �� ���"��� ������� <2��"��� ��� �(.��� ��� ������
�������!� ��� ��#������� ���"��� ������� ���"3��������"���������� ���"����� ��"��� ��� �� ��"���
���� �� �� ��#���� ������� &�����!� ������ #��� ��� ������"��� ������� �� ��#���� "����� �
������������ �!��������������"���"����"������������"�������.����������������!���"��
������������������"���������(�.�������#����$�� ����2�����!������#�����������������
��(����"�������"����"��������������������,�������� �!���#��"����"�������������
�����������������!�����������!��������!���"�����"�����
=��0�A������7�A!���������.��������"�������������������������"�������������������
�������� �������"������0�A�"��������T�
(;$<���"J;$J!�H2<!���!�"�;$�!�H!<!��2>�###>���#�
���������.������0�A�"�"����������������#�������������")���"�����#���� ����" ��
������"������"��������"���Y���#���������� ��������"����2�����!�������� ��������#���
� �� "��� ���������3���� ��� ���"��� �����$��=��7�A!� �� �������� )� �������T� � ���"�� ���")��
�"����� � �� ������"��� ��� ��#���� ������ ��2�����!� ��� ���"�� ����� #��� � �� "��� ���
���������3��������������� �������$����������� �������"������7�A�"��������T�
�
�
�
36
(J;$J<!���!�(�;$�<���";$<��
��� ������.��� �� ���"��� ������"�� ��� 0�A� ��� 7�A� "�(��� �����#V3����� �������"��
�����%?������=�� 0�A!� �� ��#���� ������ ���� ���"��� "���� ��� "����"��� �����"������ �����
�,�"��������"��!�������#��������� ����%������"���������������"�������"���� ���=��7�A!�
���� ��"��� ��!� "��� �� ����.��� �� ��#���� ������ ����� ���� ����.��� ������"��� ��� ���"���
�������������������"�����%��"���������������
>��������������������!�)�������"����70�A�� ����������������$�C������QQF��B�70�A�
)��������������������� ��#������������������2���������"�"����0�A�#��"����7�A!�
�����"����������.��� ���2����������#����� ��������"�������"�������"�������������"����
��������"�!���������� �����70�A�)����"��������"������T�
;$>�N<���"J;$J!�H2<!���!�"�;$�!�H!<!��
���������%��"��H2###H!�∩�N�^�∅���;$>�N<���������������%��� ��������.�������"�����
������������������"������������"������������"����70�A����������������2�����������
0�A���7�A��������"��#�����������.��������"������"�����������"������������������������
8<��� ��3!T�>������#���������� �T�
profDe(professor, departamento) cursoDe(curso, departamento) chefeDe(professor, departamento) prereqDe(curso, curso)
B������� ��� ������"�� ��� � ���� �� �����*��!� �"���(��� 70�A� ����� ��������� ��
������ �T�
prereq(C, C’) :- prerequisito(C, C’). prereq(C, C’) :- prereq(C, C’’), prereq(C’’, C’). prereq(C, C’’) � prereqDe(C’, C).
=��70�A!� � ������3���� �� ��#���� �����!� � ������� �� �� ���� ����� ���"��� �� �
������2������������� ����������"��� ����������0�A��<�"��"�"�!������)�����������
��������"��"������"������1����������������������������0�A������7�A!�70�A��"���(�
���"�����������������������2������#��������"���#��������� ��������������.�����������%�
������ ��������������.�������������������.������������"�!�"������"���"���������*��
→�* !�����*��)����������"����%��"������������#�������"����* �)����������"����%��"���
����������#���������������������������"���(������"���*��→�* �����������"���������
�� ��� ����� �!� ��� BG
DS qq ⊆ �� � 6������ �"����� ����� ���� �����"���� ��� C������QQ!�
0��(�����DKF��
�
�
�
37
B����"�������"���� ���������������R60!�6�:&�C>��"���DEF!��"���(�70�A�����
������ �����������"����
�3�3� / �,:��:D�@�
�� ����� ������ ��� ���"���� �� ��"���� �� �� ��� )� ���������� �� ����� ���� ���
����#���� 7�A� ��� 0�A�� ��� ����"���� �� 7�A� )� #��� ���� � �� �����"� ������ �� ���
��#������������0�A��������������������#������������"�������"����������������
�� ����� ����� ����� ��#�����<�"��"�"�!� 0�A� ������"� ��������� ��� #������������� ��
��#�����������>��������!�"�������������������� �������.��������#������������� ��
�������"�� �� �����.���� <�� C6�/����DEF!� )� ������"�� ��� )��������� ����� ��� ��#V3�����
��������������"��������.�������#����!��������"��������.���������&��<���������"���
����#�������������� �/�A$!� ��� #��!� � ��"��� ������ ������&�!� )� ��������� �2"���� "�"�� ���.���
7�A�#��"��0�A������������"�!�/�A������"�� � ������ �� "�"������#����������#��"��
�����#����������!�����������&�������������������"����"������������
B�/�A�������������"��������"�������"���� ���������"�6��C9����DEF����"�6��
��"?� �� ����� ���� �� ������ �� ��� 8>6� ��&���"����������� ����� �����$� C6�/����DEF� �� ?�
�����"�� � ��� ���%��"�� �� �����"���� �� "��������.��� �� ��#���� ��� ����� ������� 6���
�������.������C9����DEF���
�3) �� ������ ����� �������������� �������� ������:� :�����
B� ����� ����� ��� ����������"�� �� ������"�� ��� ��� >6&� C������DK!� �����DE!�
/����"���DK!�8���HDE!�B��DEF�)�� ��������� �������������"����������� ��������"����������
��� ��� ������� ���+�"���� ����������� B� >6&� ������ ��� ��� ������"� � ��� ����� #��� �
����������������������(�������<�"���"��)�������������������"�����������(�������������
������"���S�������������� ����������������#�����(������!��������"��������)�
�����"��������������� �� ������"�� ����������������� �����"����'���������� "�������"��
� �����"3���������.���������"����������������!�#��#���������������"���������"�����������
����� ������"��� �����!� ������"��� �������� ��� �� ������ ����� ����� ������ ������"���
�����"��� ����2�����!���������K�E���'��"����K!��2��"�����������������"�������������������
���������!��'��������������/�� �����������"���������%�"��!�������������%�"�����������
� �� ����� ���� ����� ��� ��������� ��� ������"� ��� ����!!� ���� ��%� ���� ��� �������
"��)�������/�����������"��)����/��+��������� �������"��������2������$��
�
�
�
38
&�������"������������������+�"��������?������������������"�!����"��#��T��
� B������"����������������������#������������������"�������"�����"�X�
� B� �����"��� ���� ������� ���� ���"��� �������� #��� �����"�� ��� ���������.���
�����"��� ������"� ��� ��� ������"� ��������?��� �� ����!� ������
��������"�����"�������������$X�
� <�����"��� ����� �� �����"��� ��� ���� ���� ���������.��� ���������"��!� ���� �2�����!�
������"�� ��� ������ #��� ����� ���� ��"�"�� �"���(�� �"��� �� ������ �2���"���
<2�������"��� ���"��� ��� CG"�����DOF� ���"��� #��� ����� �������3����� � �� �� �����
��������������������������"���������"����� >6&��
B� "������ �� CG"�����DO!� 8���HDEF� �������� ������ �)"���� �� �"���(� �� ��
��������� ���� ������"�� ��� >6&� �� ������� ����"�� ����������%��"���� �2�������"���
�"����� ���� ��� >6&� ��������"�� ������"���"�!� �� �((�� =�� �((!� ��� � ��
������� ���R60� �� ������ ��������"�� ����� ��#����� ���R60� &������ �� �����"��� ���
�"���(� �!� ����� ������������ ��� ���%��"�� �� �����"���� ��?"����� ��� ����������"�� ��
������(� ����������"��R60��
�3( � �������*��� ����
=��"�����"������������"���������������������")����������������� ����������"��
������"��������"���� ��������������������")����������������� ��������"����
#�����" ��������������������#����0�A���7�A��� "��)����������� ��������� ����
������"������������������������������>������"��������#���!�70�A���/�A!�����������"���
���������"���
=� ��������� �� ��� 7�A!� ���"���� �� ��"���� �� �� ��� ����� ������(��� ��� ���
���������"������"������������������������ ����������"���'�������7�A����������� ��
)��������"!��������������"����������"����B���%�"��������������"�������������� ��)�
�����"�� ��� ���%��"�� �� �����"�� �����"�� ��� ������"�� �����"��� � ��� ���"��� ��
��"���� ��������B������"������"���"��������������������"����"����������������������
������"�������#����������"������������������������#������������"�������"������������"��
�� ��������� �� �� ������"�� ��� 0�A� )� ���"�� ���� ������2� �� #��� � ��������� �� ��
������"�����7�A!���������0�A�� ���������������"��#�������������������"�����2"��� ��
�����"�����������"�������#����������Y����.�������������#�����������=��7�A!����
�
�
�
39
�� ��������"�� �� ��#���� �������� )� �����"� ��� ������"� ������ ��� ��#����� �����!�
�������������������"�����2"��� ���������������"�������������"����
=���������� �����0�A!�����������������������"��������������������������"�
�� ���?���� ������ �� ��#���� ������ ��� ������"�� ������ �� ���"��� ������� >���� �����"����
���������� ������������ �� ��"��"��� ����� �����T� �� �����"��� ������� �� �� �����"��� ��
:�����5�������������������.��������������"����"��)����������"��!���������������
��������������!� ��6���'��� �� ��� "������ #��� ��"���� �� �����"���������� ��� �� �����"�� �
����3����������������
��� ���!� ������ ��������� �������� �������� � ��������� ���� ������"�� �����������
��� ��������������A�����#����������������������������"���� ������"�� ������ >6&�)� �
��������� �� �� ��� ������"� �� ��� ����� ������ ��"���� ������ ��� ��� ������� ���+�"����
���������!� � �� ����� �������?���� ������� ���� "���� ��� ������ �� >6&� ���� #���".��� ��
�����������
=�� ��12���� ���"���� ������� ��� ������ �� �� ���%�"�� 5�"���� �� ���� ������������ ���
�������������������� ����������"��������"���
�
�
�
�
40
������� �"��
#�$������� ������ ��������� ���������
B���%�"������"�� "������)������������ ��������"� ����7�����������'�����"����
��� ���"��� �� ��"���� ���� ��� -� 5�"�����B� 5�"���� )� ��� ���"��� �� ��"���� ���� ���
������"�� ���� C01����DEF� ����� ��� �������� #��� �������� ��� ��� �� ��"���� �� ���
��"���������������������"���������"@���������"����3�����B������������������"���
5�"���� ��"?� ��� �"�� �� #��� ���� ������"� �����.��� ��� ���� �� �� ������"�� �� ���� �� ��
���"��� ����������"�����+����������������"������� ��)��������"���������#���
��������"�������%��"��������������"�����"��������#�����������������#���������� �K���
B� 5�"���� ����3� ��� ������� �� �� ��� �������� ��?������ � ��"���� �� �� ��!�
��������"���������"�����"�������"�����(���<���"��)���"���(����������������������
*��������"���������#V��"����G������������������������������(����"�������������"������
������"���
=��"�����"���� �����������������������������������������"�������"���5�"�����!�
��� ��"�����!� ������� �"���� �� 7��������� �� '�����"�!� #��� )� �� ��%�"���� ��������� ��"��
"�������
<�"�����"������"?������(��������������=���� ��O�K��"��������"���������������"���
� �#��"�"��� �� 5�"���!� �� ��� �� O�E� ���� ������������ ��� 7��������� �� '�����"�� ��
������������� "���������������� ��������� ����������"���!����� ���!������ ��O�O� �������
�������������.�����
���������������������������������������� ��������
K�����"��������!������������#����������"��)������#���������� ���
�
�
�
41
�
-�����"3����6��������� ���������������=1'�� %��>�
"3� ��6��������� ���������
B�5�"����)�������"�������"���� ���������������"��W�������#��"�"��������"���)�
����������������������!�������������������������%��"��������"�����(� ��
���������������������������<2��"��������������������������������������"�#���� ����
���� �� ��� ������ ��� ��(���� �����"��� �� ������"������ ���#V��"����"�� �����"��� ��
���"����������.���������������������������������� ��������"��� ������#������
��������������"�����+����������#��"�"��������"���5�"������"?�����"����������O�J��
����������������������#�"��������"��T��������� �!�������������������� ����
��� �!�����������$����� ���4�������� �� �4���� �� ������������B���� ��G���
�����"���� �������"������������
"3�3� �������� ��
=�� ������"�� '����� �����"����� �� ���"��� �� ��� #��� ��"������ �� ���"��� ��
��"���� �� �� ���� <���� �����"�� �������� �� ���"��� �� ��"���� �� �������.��� ������ ���
��#����������"��!����������������"�������������������"�������"������������"����
�������B�������"��'�������"?����"���"�� ���������������������"����5�"���� ����
>��� �� ������������"����7��� ����6��"��� ����6����!� ���������������� ���.���
�
�
�
42
������"����
B�������"��'�����)�������"������������������G���������������$�����������"��������
#������ ���"��������������
4����@����
B�����������)����1������������"��'������������?�������� ��"������������������"���
������"�� �� 5�"���� �� �� ��� �� ������"�� �� 7��� �� �� 6��"��� �� ��6������ &����
�1������ ���������������G��������
� 1 H���-�&��"����)��2"��������#���������"���#�����" ����"���������"�����
��"���� �� �� ��� ���� �� ��"��"�� �� ��"��� ��� ��#����� �� ���"��� "���(��� ��
>&U/���������������!�����"������$��B��������"��)��"������������"��(�������#����
� ���"������� ����"�������������"����B�������� ��"�����������7�����������
<�#�����'�����"�������������"����7��� ����6��"��� ����6�����X�
� J�������-�����������"������G�������)�"��(�����������"�������"������������"��
����������� �� �� ���"�� �� "��(��� ��� ��� ��"������ ���� ���"�� ��� ��� ����"��
�����������"����<�"�� ����"���������� ���"���)�R60�#��!���������������
���2������!����������������"�������������������������������"� �!�"������
��"���� ��������
- ����������� ��
��� ���"��� �� ��� ������"��� ��� ������"�� '����� � �� �� #��� "�� �� ��� ����� ���
����������(�����������"�������"���� ���& ����������"����"����3�������������"�������
���"����������"��������"������������"��'����$!��"@�����������������������"����"��
�����"�������"���� ������$�����+��������������������.������#V��"�������#���$��B�
���"��� �� ��"���� ���� ��� ���� "��� � ���"����"��� �� ����� "�"�� � �� ���� ��� ����
���"�!������� ����������"��%?��2��"��"�����"���.���������#����������"���������������"��
������������.���������������������������"������
"3�3� ����������$����� ���4�������� �� �4���� ��
B�� ���������� ��%�"����� ��"�� �����"�� � �� � ���� �� �� � ���"��� �� �� ������ �� ��
������"�������� ���B���1�������"�������"��� ���"��������������
�
�
�
�
43
$������� �����8�6������ ��������
<�"���1����"�������� ����������������"���������?���������"���(� ������#������
���� ������������������������"������������"�� ��������������.��������"�������R60�
������!�/����""��01����� ��� C01����DEF�����@����������� ������"��� ��������R-<�"�"H��
G�"-��� �� ��� �2"��� �� �� <:� C'���MLF� ��� ��#����� R60�� B� �1���� 7��������� ��
<�#�����'�����"����������"������#�����2���"����������������?��������������#����
��� ����"�� R-<�"�"H�� <���� �1���� "��)�� "�"� �������.��� ���� ��#����� �� ���"���� B��
������"�����R-<�"�"H���� ���"�����������"���
��"��� � ���� �� ��� ����"��!� ������ ������ � �� �������� �����7��������� �� <�#�����
'�����"���T�
� <2"��-��!�"��)����������!�����#���� �R60�������$� "���� ���"�� �����#�����"?�
���������X�
� '�����"��>&U/������"��������#�����R60�������$��"��������"�X�
� G�����������������#�����#�����" �����R60�����������R-<�"�"HX�
� '��������������#����X�
� <!��������"�!���"���!�"��)��������"��!��������"��������� ���
<�"�������"���� �������������7�����������'�����"����6��� ���
� ���� ��K:8���L�
B����������������"����������R-<�"�"H�)����"��������"�����������"����"��"������
������"��� R60� ������"� ���� ��"���� ������"��� �� "����"���� =�� ������ R-<�"�"H!� ���
����������"��� ����� ���� �� "���� ��!�O�� ���� ������"�� ��"?� ���"��� ��� ��"��� ������"�$� ���
��)���!�������������"��������������"���������"�$��&���������"����T�
� 8�������-������"���%!����"�����%�� �̀J!���!���a!� �̀J!���!����a$!�)�������"�����
�����"����������%!�������%��"����"����"����J!���!�������������%��"��������.���
�J!���!� ���� ��� ��"��� ��������"� ��� ���%��"�� �� ������"��� ���� ��� ��"��"���
������2!�������"���"����"�������"����������"���������������������"��$�����
���"+���� �� ��� ��"��� )� ��� ������"�� ��"������ ��� ������"��R60� ���"��� '�
��"���"���"����"��� �̀J!���!����a�#����������������"����"������������"�"�"�����
"����"�� #��"�� ��� ���������"�!� #��� � �� )� ������"�� ���� ��"���� ������"��� ���
"����"��X�
�
�
�
44
� ����� ����� � � ��M� -� ��� ����������"�� ��!�O�� ��"��� ��� ��"���� %� �� %2!�
����������#��������"+������%����")�����"+�������%2��5����)����"��������%!�%2!�
��!!���7$$!�������)���������������������"������!!���7$����������,������������
���?2������ ���"+���� ��%2� #�������� ���� ������� ������� ���"+���� ��%��=���
������R-<�"�"H!�����������"�����!�O��� ���2����������������������"��������
�� "�2"�� ��!�O��� �� ����� �����"��� �� ����������"�� ���� �� ��"���� ��"�����"��� )�
�����������"���%�������"���%2X�
� ����� ����� ��� �������-�������������"����)���!��!����"�������+�%2!�%3!� �̀22!�
���!��2!a!� �̀32!� ��!��3!a$!�����������#������"���%2� ���������� � ��"���%3� �� �̀22!� ���!�
�2!a��� �̀32!���!��3!a���������"�����"����"����������3������"�������"����%2���%3�"��
#�������������2�!�J≤���≤�!����#��#������"���%2�����"�������������������3�!�J≤���
≤�!����#��#������"�����%3��=���������R-<�"�"H!�����������"����������3����
� ����������"������������������"�����������"�2"����)���!�����������#��������"���
��"���� ��"�����"��� )� �������� � ��"��� #��� ���������� ��� � ��"���
�����������
B������� �� �2������ �� ��� ����� R-<�"�"H� �� ������ O�K�� ������ ������(�� #��� �
��"����(������")��������������"���� ��-�������"��)�����������������"���%�������
��� � � � �� �� ��� ������� � ��� �� �
������ �� � � � � � � � �� �
� � � �!� � � � � ��� � � ��"#� �
����$�
� � � %'&��
�
-�����"3��8<��� �������������K:8���L�
� ����� �����8�6�����
<�"���1���� "�������� ���� ���"���������������3����� ��"������������"�������#������
5�"��)!��(�������?��������"?"��������+�"�����������"��"�������������#����������"��������
�"���������#����� ����������"�������������"������������"�������"�����#�����
$���� ������ �����������4����� �
B�7�������'�����"����6��� ��)��������?�����������������������"��������#���� ��
������"��� �� �����"� �� �� �"������ ������"� �� ���� ��� ��)�� ����!� ��"�� �1����
"��)�� ���"����� ��� ���������� ��������� #��� ��� �� ����� ��"��� ��� ������"��� �� ���"��� ��
�
�
�
45
����
$������� ������ �����������4����� �
<�"���1������"��������"���"��������7�����������<�#�����'�����"�����&�����������
���� ��)���������������"��������������7�����������<�#�����'�����"���������#����
�� ���� ��� <�"�� �1���� )� ���"���"�� �������?���� ���� �����"��� ��� ��#���� �� ���� �� �
�� �!������� ������������ �������"������������������"�������"���� ���
�5���� ������ �����������4����� �
<�"�� �1���� ����� �� ����"�� �� ������.��� �� �������.��� �� ��#���� �� #�����
������ �� ���"����6)"����� ����� ������������ � ���"�� �� ��� �� "����� �� ������"� � ��
����������"���1�����
"3�3� �������� �B���� �
=��"�� �����"�� � �� "�"�� �� #���".��� #��� ��� �������� *�� ����������.��� �� ��#����"��� ��
���?�����S����������?����������"�#����������������"���%�����������(!������"�������
��!� ������������������������ ���"��� ����!� �� ���"��� )� ��(��� ��������� *� ������"��
'�������"���!���7�����������'�����"����6��� �����?�������������������������� ��
����#����"��������?����������"����
"3�3" ������������������� ������� ��
=��"�������"��� ��"�"�������"�������������� ����������"�!���"���� �����������
������������ B� ��������� �1���� ��"�� �����"�� )� �� 6����� #��� ��� �����.�� ���
7�����������'�����"�� ��7��������������"����<�"����1����� "�"��������� ���������
��"�� �����"�!� �������� ������"�� �� ��"����� ���� B�"���� �1����� ������"��� � �� ��
7���������� ���������7����������������G����������
4���� ��
B�6�����)���(��!�����������������"������?���!������@-��������������"���!���
����������� ������"�� ������ �!�������� � ���"�������#��� ���?� ��(��� ��������� �
�� ��� �� ���������"�� �������� ��� ��(� ��������� �� ������"�!� �� �1���� ����?�
��"���������������"����G��������������������?���������2��������&�� ��O�E��
�
�
�
�
46
B������1�������6������ �T�
� $������� �� ��� � �������� -� >������ �� �����"�� ��� ������"!� �� 7��������� ��
'�����"��������������"������������" �����������.���������?�����������������
��"� ������"�� �� ����� )� ��� � ���� 6U/� ��������� �!�����"�� ����� -� /��� ��
'���������"����6����$��<�"���1����"��)��)��������?�������������������"����
������#���".������"���(� ��� �� ����!���7�����������'�����"�� ��"�����������
7���������� ����� ��������7����������������G������������ ��"���� ��������
�� ������� ���������"�� ������� � �� ���"�� "��)�� )� "���� ��7��������� ��
'�����"���B�7�����������'�����"�����?���������"��������� ��O�KX�
� $������� ������- �����-������������"������7��������������"���)���"����������
��� G�������!� ������� ���������"�� �� ��������� ��� �����"���� ��)�� ����!� ��
7��������� �� ���"��� "��)�� ����"��� �� ���"��� ���� �� ��"��"�� �� �"������� ���
�"���������������������"�����(�����������G����������
$������� ��������,��
B�7��������� � ����� )� �������?���� ���� ��������� �� ���"�,�� #��� ��"?� ��(���� ��
�������=��"��������(�������������"�����������"���������#V��"���������3����� �����
������� "������ �� �?����� �� ������ ���������!� ����"���� �� ����"�"��� �� �� ������"��
��(���� �� "���(� ���� ���"�,�����)������!� ��7���������� ����� "��)�� ��"�����
��������"���������������#V3�������������"�������"��������"��������������������"��
�����������(������ ������
$������� ��� ������J���, ����
����������� "���� ��"���1���� )� ����"��� ���� ����������������B�7��������� �������
G�����������������")��������"�����(� ���������������")��"���(����
/�������� �,����� �� �4���� ��
��/�����'���������"����6���������������!�����"�������-�6U/$���(�������#����
������ ���� �� ����"������ ���������3�������� ����"������ ���������3���� ����������
5�"������� ���"���(������������������������� ����������"�����"��������12������ ���
"3�3� ������5������� ����� ��.����
��"����������� ����������������"������ ���������3���� ���C01����DEF�)� �������
����������T�
�
�
�
47
� %+T����"������"������������"�������������+X�
� %�T����"������"�������#�������� �X�
� ��T����"������#���������� �X�
� %+#�T����"������%��"����"����"������"���%+X�
� %+#�T����"������%��"��������������"������"���%+X�
� %�#�T����"������%��"����"����"������"��������� ��%�X�
� %�#�T����"������%��"��������������"������"��������� ��%�X�
� �+#%T����"������%��"������"��������#����������+X�
� �+#�T����"������%��"��������������"�������#����������+X�
� ��#%T����"������%��"������"��������#���������� ����X�
� ��#�T����"������%��"��������������"�������#���������� ������
=1������������"���������������3���������������"������"�����"�����������3�����
��"��� ��"���� �� ���"��� �� ��� ��"��"�� �� "��)�� ��"��� "����"���� �����"���� ��
���������3���!���������������C&������"�QO!�A��DJF!�� ��"�������������������"���.�����
��"�������������������#�������+�"�������������������"�����������#����"�������
��������� ���� � ���+�"��� ����"���� ��������"��� ��������"��� ��#����� 5��"�����������
������"���"�����������"���������������3�������������������������"���������������"���
��"������������"�������#�����R-<�"�"HT�
� ������5�� ��� � ����� ��.���� ��� �������T� ���������� � ���������3���� ��"��� ���
��"��������#�������"��"����
�� ��� �"3��;������5������ ����� ��.��������������?T�'������������"����%2���%3����
����"��������������3����%2�≅�%3�����������#���%2���%3�� ������"�����"���#������"����
'�������������#������������O�O������2������������"��������������3����)��(���≅�
�(��2��
Esquema de mediação
Livro({título, editora}, {Livro_Capítulo}) Capítulo({título}, {Capítulo_Página}) Página({texto}, {}) Livro_Capítulo({Livro, Capítulo, (1,N)}) Capítulo_Página({Capítulo, Página, (1,N)})
�
�
�
48
Esquema da fonte 1
Livro1({título1, editora1}, {}) Capítulo1({título}, {Capítulo1_Livro1}) Página1({texto1}, {Página1_Capítulo1}) Página_Capítulo1({Página1, Capítulo1, (1,1)}) Capítulo_Livro1({Capítulo1, Livro1, (1,1)})
Esquema da fonte 2
Livro2({título2}, {Livro2_Capítulo2, Livro2_Editora2}) Capítulo2({título2}, {Capítulo2_Página2}) Página2({texto2}, {}) Editora2({nome2}, {}) Livro_Editora2 ({Livro2, Editora2, (1,1)}) Livro_Capítulo2 ({Livro2, Capítulo2, (1,N)}) Capítulo_Página2 ({Capítulo2, Página2, (1,N)})
(*) +-, . /103234 576 8!9;:<) =?>*@ . /A032B4 5B6 C*D<EF) GA9H HI I
(<) +#, .<J /103234 576 8!9;:<) =?><@ .#K /A032B4 5B6 C*9<EF) G19#KH HI I
L<M'NF>AO;PQ9SR<OTPUO<RF) 9L<M'NF>AO;PQ9SR<OTPUO<RF) 9L<M'NF>AO;PQ9SR<OTPUO<RF) 9L<M'NF>AO;PQ9SR<OTPUO<RF) 9�VV VVXW<.W<.W<.W<.
L<M7NF>1OFPU9SRX9ZY .FGA= O\[L<M7NF>1OFPU9SRX9ZY .FGA= O\[L<M7NF>1OFPU9SRX9ZY .FGA= O\[L<M7NF>1OFPU9SRX9ZY .FGA= O\[
(<) +-, .#] ^ _B` _3^ _ 2B/Aa b 8!9;:<) =?><@ .#] ^ _3` _3^ _ 23/Aa b C*9<EF) G19#]H H H
L<M7N;>AOFPU9SRX9ZY .FG1= OcJL<M7N;>AOFPU9SRX9ZY .FG1= OcJL<M7N;>AOFPU9SRX9ZY .FG1= OcJL<M7N;>AOFPU9SRX9ZY .FG1= OcJ
d e d f1g h i1j1k d h�l m
d e d f1g h7n i1j1k d h1l mBn
d e d f1g h�o
H
/A032B4 5B6 L<R;) = .F, 9K
H
I
p h1q;i1o
d e d f�g h
d e d f1g hBn
d e d f1g h�o
d i r?d hBn
d i r�d h1o
d i r?d h
�
-�����"3��8�6�����<��� �
� ������5�� ��� � ����� ��.���� ��� ����������T� ���������� � ���������3���� ��"���
�����"��������"��������"�����"���#������"����
�� ��� � "3�� ;������5�� ��� � ����� ��.���� ��� ����������?T� '���������2�%2!�%9!� ��!!�
��7$$����3�%3!�%99!���!!���7$$��������������������"�����!�O�!�"��#���%2�≅�%3���%9�≅�%99�����
����"��������������3����%2#�2#%9�≅�%3#�3#%99�����������#���������"���%9����"���%2�)�
����"�����"���#������"��*������"���%99����"���%3��
=���2�������������O�E!��(��#�(��P ��-����# ��-�����≅��(��3#��(��P ��-����3# ��-����3��)����
�2������������"��������������3�����������"����
�
�
�
49
� ������5������ ����� ��.������������� T���������������������3������"���"����"�����
��"��������"�����"���#������"����
�� ��� � "3�� ;������5�� ��� � ����� ��.���� ��� ������ ?T� '���������2� ��� "����"�� �
��"���%2� ���3� ���"����"��� ��"���%3!� "�� #���%2�≅�%3��������"����� ���������3����
%2#�2�≅�%3#�3�����������#������"����"����2����3�� ������"�����"���#������"����
=�� �2������ � ������ O�E!� �(��#������� ≅� �(��2#������2� )� ��� �2������ �� ����"��� ��
���������3������"����"���
�� ��� � "3"� ;������5�� ��� � ����� ��.���� ��� ������ � ��� ������� ?T� '��������
��22!���!��2!$�"����"�����������������"���%2�����32!���!��3!$�"����"���������������
��"���%3!� "��#���%2�≅�%3���∀�2�∈���22!���!��2!$�∧�∀�3�∈���32!���!��3!$!�J≤� ��≤�!��2�≅��3����
����"��������������3����%2#��22!���!��2!$�≅�%3#��32!���!��3!$�������������������"����"�����
���"+����� �����������"��� �� %2� �� %3�� &�� ��� ���"+����� �2� �� �3� �� ��"���� %2� �� %3!�
������"�����"�!�"3�������������������������������"�����"���#������"����"����"���
�2����3!!�J≤��≤�!���" ���2����3��� �����"+����������������"��!�����!���������"������������%�"��
�������������
=���2�����!���"����"����������"�����(���)���"����"���-������
� ������5������ ����� ��.����������, T� ���������� "����� ����������� ���������3����
��"���"����"����������"��������"��������"�����"���#������"���#���"3��������"���
��"��"����� ��������������"�����������!���������������������������������"��T����� ��
����������
�� ��� �"3��;1���� ?T�'��������$2���$3�������"����������#����R-<�"�"H�����������"��
�������������"��!��������������"��������"����"�$!�$2�$3�)�������� ����T�
�$�$3��)����"����"���������"���$2��
��$�$2��)������"�����"�����"�����������������"��$3���������-����$��
�� ��� �"3(�;���, ?T�&��$2�����$!�� ��������"����������#���!�"��#������∀$!�J≤���≤�!��
$�$Q2�)�����!�!���" ��&��$2��$3�������$!�)�������������"������$2���
�� ��� �"3!�;������5������ ����� ��.����������, ?T�&���2��"��������������"������
$2����"������$2��$3�� ���� �$!!� "��#���$!�)������"��!���" ���2��"���������������"��
�����$2��$3�������$!$-J!�#���)�������������������������$2��$3�������$!��
�
�
�
�
50
�� ��� �"30�;���, ��5��� ?T�'��������/2���/3�����������������T�
� ��� � �T� /2� ^� $2�$3�� ���� �$!� �� /3� ^� N2�N3�� ���� �N!!� ���� $2� ≅� N2�� �� ����"��� ��
���������3���� /2� ≅� /3� ���������� #��� � ��"��� $!� �� N!� � �� ����"�����"��
�#������"����
� ��� � �T� /2� ^�$2�$3�� ���� �$!#�� �� /3� ^�N2�N3�� ���� �N!#�9!� ����$2� ≅� N2�� �� ����"��� ��
���������3����/2�≅�/3� ����������#����� "����"����� ��"���$!� ���� "����"���9��
��"���N!�� ������"�����"���#������"����
� ���� � �T� /2� ^� $2�$3�� ���� �$!� �� /3� ^� �N2�N3�� ���� �N!$-J!� ���� $2� ≅� N!�� �� ����"��� ��
���������3���� /2� ≅� /3� ���������� #��� � ��"��� $!� �� N2� � �� ����"�����"��
�#������"����
� ���� �"T�/2�^�$2�$3�� ���� �$!#�� ��/3�^� �N2�N3�� ���� �N!$�J#�9!� ����$2�≅�N!���� ����"�����
���������3����/2�≅�/3� ����������#����� "����"����� ��"���$!� ���� "����"���9��
��"���N2�� ������"�����"���#������"����
�� ��� �"3�%�;���, �������5��� ���������� ?T��������"������������%���≅�/��b!�
���������9�� ��"����"�����/�^�N2�N3�� ���� �N!����/�^��N2�N3�� ���� �N!$�J!�����������#���/��9�)����
�������������� ����"����"�����
=�� �2�����!� � ����"��� �(��#������� ≅� �(��3#�(��P%�����3#%�����#!���3� ���������� ����� ��
"����"������������"����(������?����������"�������"��K��
�� ��� �"3���;���, �������5��� �����������?T��������"������������%���%9�≅�/!�
������)��������������"�!�%���%9�� ����"������/�^�N2�N3�� ���� �%bb����/�^��%99�N3�� ���� �N!$�J!�
����������#���/�)������������������ �����"���%9��
=�� �2�����!� � ����"��� �(��� ≅� �/D"!�2#/D"!�P ��-����2# ��-����2# ��-����P�(��2#�(��2$-J�
�����������������"����(������?����������"�������"��K��
"3� K82�
R<S��$�%!��&�����&���!"��"�$�)���������������������"����������"���R60!�����
�� ����� ���� ��#����� ���R-<�"�"H!� ������"� ��� �����"�� �� ��������� �� ��������� ����
������"�� �� ��� "��� �� ��� �� ��"��� ���������� ������� *�� ���"���� R<S� ������� �
�����������"��������������"� ����"���������)������������������������"����������-
�
�
�
51
��"��"������ G�� ��������"� �� "��)�� "��� � ��������� �� "��� ��� ����� �� ��"��"����
����������������������"�����"��R<S�������������������"���(���"������"�������"���
����"���� ��������������������������"����"����� �T�
� R<S� ����3� ��� ������� �������� ��� "��� �� �� ������"�� ��� ��"��� �����������
R<S����� � ��"��"�������?�#������R60�� ��"�"�!�������������� "��� �������
������"� R<S� ��� ��� ��"�� ��������� ������"�� ��� ���������� �����������"�� ���
������"����������"!�����"�������������"������"�"�X�
� R<S� )� ��� ��������� ���"� ��� � �?#���� �� � �� ��� �� ��"������"�� �������
>������"����"�� �� ���������� �� ������"�� ����"���!� RS���H� C'��������DJF� ����
�2�����!� #��� ���� �� ��"��� �� ���� �� ���?���!� R<S� "��� �� ��%�"���� �� ������ ���
������������������"����������"��5����)����"��������������"������� ���������"����
��������������"��������#V��"����"�����"����������"���!�������"�������������.��X�
� 9?� #��� R<S� )� ��� ��������� ���� ��� � R60!� "��-��� � ��"���� ��� ���� ��
���������� �� "�������� ��R60��0��������� �� "�������� ��R60� � �� ����������
��� ����������� ��"���� �� ������� �� �� ��� ������"�� R60� ��� #��#���� ��"���
����"�� �"�2"�!���"���������"��R60!� ��"�����"���$���������� "��(������ ������"�
R<S� ��� ��� ��������� �"��� �� ��� ���"�� �� ��� ����!� ��� ��������� ��
"�������� �� R60� ���� ���� ���� '���� �2�����!� ������������ �� ���� �� R&0G�
CWWW'DOF!� ��� �������� �� � WE'E!� ��� ������ �� �� ��&��������!� ������������
����� "��������� ��� ������"� R<S� �������"��R60$� ��� ��� ������"� ��� ��"��
����������
&������"����5�"���!��2��"������"��������"���� �������#����������������������
��������������������������������"������"�����"��"��������������������"� ����"������
���"���� B� ��%�"�� G&5665&� ��� ��� ��������� ���� ��� ���������� C8����QMF�� =�����
���%�"�!� � ��������"� ���� ��� "��"��� ���������� ��� ���%��"���� ���������� �����"��� ������
�������������"������"��������#�����������������"�����"��������"��"��������������
��� ��%�"��� #��� ���� ��"����� &�� ��� ������"� � ����� �� ��������� ���� ��� ��������!� ���?�
����(�����������"��������"���"��������"����
G��)�� �2��"��� ���"���� #��� ���� ���������� ������"�� ��� ������"��� R60� �����
��"����� "��"������B��-R60� C7����DKF� ����6�:&� C>��"���DEF�����3�� ��"���� ����
���������������������������������������� ��������
E��""�T�������E�����
�
�
�
52
�,�"��������"����������������#��������R60��G������"���� ��������"�����"��������!�
����� RS���H� C'��������DJF�� B� =������ C>����DJF� ��� �� R60-S0� ����� ��������� ��
��"��� �����������?���������������"������"�����"��"������
����������������������(�����������"�����R<S��
� ���� �����K82�
�#��!�������"���������������"����?����������������R<S��0��������#���)������"�"��
#������������"�����������R-<�"�"H���"�%����2��!����"��#���R<S�����-����������������B�
������R-<�"�"H�C01����DE�F�)�����������������"�������"���� ��������������������
��"�� �����"��������������������.��������"��������#�����R60��
�� ���������� ������"��� � ��������"� �� �� ��� ������"� R<S� �������� ������ ���
��"������������"�����$!���������������"���"����"������������"�����!������������
���� �� �2�����.��� ��� ���"������� �� ���"+����� ���� ��"���� =1�� "��)�� ������� �������
������"�� #��� ��"������ ������� �� �����"��� � ��"��� ���� ��� �����"��� �� ���
��"���%�)������"���%9� �#���)��������%�"��)�����������������"�� ��!�O�����)��
����!� ������"�� ����� ������� ��"���� ���� �� ���� ��"���� ������������ ��� ��"���
���������� ���� ��� ��"��� %� )� ��� ��"��� %9� #��� )� ������ � %� "��)�� ��
����������"�� ��)���!����'���������"���������!�R<S��2��������������"��"��)����������
�����.��������!����#���������������"���������"��������������"����"��������"�����
B�������"���?����������������"�R<S�)���������"��������� ���B�������"��������� ��)�
�������������"����"������"����������"���������������������"�������"�������������"��
���������=1������������"�.��T�Zc[����������!�Z_[����(���������������3������Zd[����
���������������3������
B� ������"�� �� ����� �� &<0<'G� �� )� ��� "���� ���� �� ^� �<=G5Ge!� �GG:5/�G<d!�
:<�<:<='<_!�&<0<'Gd!�W8<:<_$!����T�
� <=G5Ge�)����"����"����%�������)�����������"���%������������"X�
� �GG:5/�G<� )� ��� ������"�� ��%�� ���"�,�� )� �� ����� �� ��� "����"�� � ��"���%�
��%����������������������������������"X�
� :<�<:<='<� )� ��� ������"�� #��� ������ � ����� �� �� %��� �� ��� ��� ��������
������"��������������������"���%�������"�������������%9��B�������"��
:<�<:<='<���)�������������^��=�6<!�6� d$!����T�
o =�6<�)����"����"����%�������������������������3���X�
�
�
�
53
o 6� �)����������"��#�����������������"����"�������������������� ����
%��� ���B����"�,����6� �)����������"����"���!�J≤���≤�!����"���
%��B�������"��6� �"��)��"������"����"�!�������GG:5/�G<!���%��
�����)����������"����"���9!�J≤���≤�!����"���%9X�
� &<0<'G�)����������"���9!����#������������"����"��<=G5Ge����9�)�������������
�����"�����%������������������"�����������������%��
� W8<:<� )� ��� ������"�� #��� ����� ��� ��� � ������ ���������� ���� ������"�����
������"�� W8<:<�G� )� ������"�� ���� ��� ������"�� 'B6 �:<� ��� ��� ������"��
'B6 B&<!������G�^��'B6 B&<c'B6 �:<$!����T�
o 'B6 �:<�)����������"��#���������������������� ����"���"����"�����
����"�"�������������"��'B6 �:<�/�)����"�����/�^��=BG_!�Ge <!��J!�
�K$!� ���� =BG� M� ^� �"���c����$� )� ��� "����"�� �������� #��� ���� �
������ �!�Ge <�)����"����"��#����������"������������ ����2T��#��!�
���"��!� ����!� ������"$� �� ��!� ���� J≤� �� ≤K!� )� ��� ������"�� "����"�� ��� ���
������"������"�"���B����"�,����������"������"�"��)�������������"�"��
��2T��"����!���"����!�"�$X�
o 'B6 B&<� )� ��� ������"�� #��� ��������"� ��� �������� �� �1���� ��
������"��� 'B6 �:<� ��� ��"���� ������"��� 'B6 B&<�� ��� ������"��
'B6 B&<� ��^��Ge <!��J!��K!����!���$!�����Ge <�)����"����"��#��������
�� "���� �� �������� �� ��=>!� B:$� �� ��!� ���� K≤� �� ≤�!� )� ��� ������"��
'B6 B&<�������������"��'B6 �:<�����≥�K��
A��������"������"��"��������������"�R<S�"��)������2����������������
�������� ��)� ���"��"���(�����������"��&<0<'G�� �������������#��� ��"�����������
��������!��"���(-�����"����"��<=G5Ge���� ���������?-��� �������������#���� "����"����
��"��� ����� ���� ����������!� �"���(-��� �� ������"�� �GG:5/�G<�� �� ������!� �������
�2����������������������"�����R<S��
8<��� �"3�T�&������������"���0����!����"������������"����"���"�"��������� �T�
<SELECT ENTITY="Livro"> <ATTRIBUTE>título</ATTRIBUTE> <ATTRIBUTE>edição</ATTRIBUTE> </SELECT>
�������� ������ "������������������.������������������$��>��������!����-���
�
�
�
54
���������������"���������"����������������B����������2������O�K��=�����������������
��"���0����!�������"���'��"���������"�������������<�"����=�"��#���������� ���
��"��� ����������<�"��!� "�������� ������"��:<�<:<='<�#��� ����� ������������?� �
%��� ����"������"���0����������"���<�"����B�������"��:<�<:<='<�"������"����"��
=�6<� #��� ����� �� ����� � �����3���� �� "��� ��� ��� ���� ������"��� 6� � #��� ������ ��
������"����"���"����"������"���#������������������"��������������=���2�����!��
��"���0����� ���?� ������ *� ��"���<�"���#������"����"��:<�f<�"�����0����� ����
�������"����"��5>f<�"�����<�"����
8<��� �"3�T�&������������"���0����!�����������������"���'��"������0������������������
��"�����������������0�����<�"��T�
<SELECT ENTITY="Livro"> <ATTRIBUTE>título</ATTRIBUTE> <ATTRIBUTE>edição</ATTRIBUTE> <SELECT ENTITY="Capítulo"> <ATTRIBUTE>texto</ATTRIBUTE> </SELECT>
<SELECT ENTITY="Editora"> <REFERENCE NAME="Ref_Livro_Editora"> <MAP ATTRIBUTE="REF_Editora">ID_Editora</MAP> </REFERENCE> <ATTRIBUTE>nome</ATTRIBUTE> </SELECT> </SELECT>
������"���.���� ����������&<0<'G!��������������"����������������������� ���
��� ���"��� �� )� ���"� �"���(��� �� ������"��W8<:<��B������� �� �2������ O�E��=���!� �(�����
�������� ��*���"���0������������������"��� ��"�"����^�g/������>���5b��
8<��� �"3�T�&������������"���0����!����#���"�"����^�g/������>���5bT�
<SELECT ENTITY="Livro"> <ATTRIBUTE>título</ATTRIBUTE> <ATTRIBUTE>edição</ATTRIBUTE> <WHERE> <COMPARE TYPE="EQUAL"> <ATTRIBUTE>título</ATTRIBUTE> <CONSTANT>Banco de Dados I</CONSTANT> </COMPARE> </WHERE> </SELECT>
B� 'B6 B&<� ��������"� ��� �������� �� �1���� ��"��� ������"��� 'B6 �:<� �� ��"����
������"��� 'B6 B&<�� =�� �2������ ��2�!� ������� ��"�� ��� ����� �� *� ��"��� 0�����
�������������"��� ���"�"����^�g/������>���5b������ ��h�E$��
8<��� �"3"T�&������������"���0����!����#���"�"����^�g/������>���5b������ ��h�ET�
�
�
�
55
<SELECT ENTITY="Livro"> <ATTRIBUTE>título</ATTRIBUTE> <ATTRIBUTE>edição</ATTRIBUTE> <WHERE> <COMPOSE TYPE="AND"> <COMPARE TYPE="EQUAL"> <ATTRIBUTE>título</ATTRIBUTE> <CONSTANT>Banco de Dados I</CONSTANT> </COMPARE> <COMPARE TYPE="GREATER"> <ATTRIBUTE>edição</ATTRIBUTE> <CONSTANT>3</CONSTANT> </COMPARE> </COMPOSE> </WHERE> </SELECT>
"3� $������� ������ ��������
B�7�����������'�����"����5�"����)��������?�������� �����������������"������?���!�
���"������ #���� ���"��� � �� ��(��� �� ��������� *� ������"!� ���������� � ������"� ���
���������"�������������"��!������������������������"��������"��!���"����������������
�����3-������������?�����G�����������)�������(��"��)����"�������2�T�
+��� �� �T� �� ��������� ��� ��!������� "��(� ��� ������"� �� ���?������ ��� ��� ��������� ��
������"��������������"��X�
+��� ���T���:�)������������� �!���������������������������%��"����������"���������*2!�*3!����!�
*!$!� ����� �� ���������3����� ��"��� �� ��#���� ������ �� �� ��� ��#����� �� ���"��� ������
�������"��������� �������������������������$X�
+��� ���T��� ���!������������!�����������������"�������������"��"��������������"�X�
+��� �� "T� ������ �� ������� ��� ���� ������"!� �� "��"��� � "��(� ��� � ��������� ��
������"���������������������"�������������"�X�
+��� ���T������"������������"��"��������������"���������"���������"X�
+��� ��)T��������� ��������������������"�!� ��"��"����� "��(����R60����������
��������"�������"���� �X�
+��� ��(T� �� �!(������ �����%�*����� ������?.�� ������"���� �����"���� ������"�� �����!� #���
��"?��������"������!����������"������#���������� �X�
+��� �� !T� �� '!��"������ ��� ������ ��"���� ��� ��� R60� � ���� �� ��"��� � ������"��� ��� �
������"����
�
�
�
56
�"��)�� �� "����� ���!� ������� ���"������ ��� ��������"��� #��� ����.��� ��� � ��
�"���(��������7��������� ��'�����"�� ����������� O�O$�� G��� ��������"��� � ���"����� �
������T�
"3�3� ����� �������� �������
��5�"��������������"�)��������?����������"���������������?������"��)����������?��������
�����"��� ��� ������"� �� �������� ����� ������"� ��� ������"�� R60� ���"���� ��� ���
��"������ �� ���"��� ������"��� �� ������"� �� ���?���� ���� ���� �����"�� ��� #��#����
�����������������"�#�����G��"�����'�����"��3������"���
Interface de consulta
Tradutor de
consultas
Reformulador de
consultas
Integrador de
dados
Bancos de dados relacionais
Tradução
XEQ - SQL
sut v1wXx y�z�{Relações - XML
Tradutor1
q1’
Bancos de dados OO
s!t vAw<x y�z�{XEQ - OQL
s!t vAwXx y�z�{Objetos - XML
Tradutor2
Documentos XML
s!t vAwXx y�z�{XEQ -XQuery
sut v1wXx y�z�{XML - XML
Tradutorn
rn ’
q1
r1q2 r2 qn
rn
Gerenciador das fontes
(q1, q2,..., qn) (r1, r2,..., rn)
Q R
Conversor para
esquema global
Ge
ren
cia
do
r de
co
nsulta
s
q2’ qn’r2 ’r1 ’
|u}�~*���7��1�7�B� � �1� � � ������ ��� �7� � }B� �B�
|u}�~*���7��1�B�7� � �1� � � ����� �'}�~� �B��� ��~S� �7� } � ~
��
-�����"3"�&� ���� �����<����� ����� ������3�
"3�3� +����� ������ ��������
'�����"�� �����"��� �� ���"��� �� ��"���� �� � �!� �������� ��� ����!� ������� �����
��������������"��������������"��������������������������"������"?�����"��������
���"������ ��"������"�������!�������"��� ��!�������"����������������������� ����
"��� �� �� ������"�� �� ���� �� ������(�� � ������2��� �� "��� ��������!� ������� ���
��������� ��"���� R<S� �������"� �� ��� �� O�E$�� R<S� )� ������ ��� ������� ���
��������"� ����"������������"����������"�������"���� ��������>��������!�������"��
��������������"������������������#��#����������������"��(�����R<S���
�
�
�
57
"3�3� �� ����� ������ ��������
B�:������������'�����"��"�����������"���"����T�
J- 5��"������#����� ������"����������"�X�
K- 5��"������#�������"���� ����(��������"����������������"��X�
E- :����������������"������?������������"����(������"����������������"����
6�����������"�!��1����������������#������������������������� �������������"����
�����������"��������� ��%��������"�������������������!����������"����2!����!���!�"��
#������^���2θJ��3θK�����θ�-J��!!�����θ��)��������������?���O���������)��������������
���%��"��������"���������������3����������
#�&� ���� �
B�:������������'�����"���������"�����2���"������������������������ ���T�
� � �������� ������ �-��������"������?�����"������������"��"�����������"��
#����(��"��� �����R<S!�����������"������:������������'�����"�X�
� 8�6������������ �-��������"������?�����������������������������
��#���������� ��������"����)����"������:������������'�����"�X�
� ������5��� ��� � ����� ��.���� -� �� :���������� �� '�����"�� �������"� ��
����"���������������3������������������������"������?������������"��
������
B����������)����"�������"�3���"��T�
� 8������T��������"������?����)��������������������#���������� �X�
� 8����� �T� � ������"� �� ���?���� ������ �� ��#���� �� ������ )� ����� ���
��������� � ������"� �� ���� �� �����������"��� <�"� ������� #���� ���"��� � ��
��(��������������*��������"��0������������!�����������������"��!�
���������"����������)������X�
� 8������T���������"������������� ����������������������������"����
���"��K�)������������2��>��������!������������3-�������"�����"���
���������������������������������������� ��������
O�=��"��"�������1�������������������������� ���
�
�
�
58
'��������� #��� R<S� ���� �� ��������"� �� ��"��"���!� ������"�� R<S� ����� ����
�������"�� "��������� ��� ��� ���%��"�� �� ���������"��� '���� R<S� ���� � ��"��"���
����?�#������R60!����������������������� ��)����(�������������� �����������#���
����"����������"����������"�������"�1���������"������"�"�������������"�!������-������
��� ���%��"�� �� ����"���� �� ���������3����� B� �����"��� #��� ���"��� � ��������� �� ��
������"��)�������"��������"���������������������
B������"�����)�������)���������������"����(������������*�������"�����#������
���� ��� �����������"����������"� ����� �����������"����������� ����������������
�����.��� �� ��������.��� � ������"� �� ���?���!� ����� ��� �����"���� ��)������P�������� ��
��)������PG������ �� �� ��������"�� �� ����� �!� �� �����"��� ��)������P�������� ������"� ��
����"���� �� ���������3����� ����������� � ���� �� �����"��� ��� ���������3����
������������ �� ����������"�� ��"��� � ��"��� �� ���� �� ����������� ��� ������"�� ��
����� �$����� ��"���� �������<�������������"��)� "��)�����"����� ��"����"��� ����� ��
"����
B������"��� ��!��P/���P �!������)��������"�����������������������������"��)��
�����"��������������3�����������������������"���������� �����������"�����������
��?�����������������"�������������"������������"�$��
B� �����"��� ��)������PG����� ����� �� ���"���.��� � ����� �!� ������� ���� "����"��� ��
����"�"���� <����"���� ��� "����"�� ��� ���"���.��!� �� �����"��� ������"� �� ����"���� ��
���������3���� � ���� �� �����"��� � ���������3���� ��� ����� "����"�� �� ���"�� ������ &�� ��
"����"���������"������������ �!����������������"��������)��������������
������!��������"���������(�P����������"���������"��������������3���������"����"�!�
������(�P%!������ ��"���� � ����"��� �� ���������3���� �� ��� ��"��!�5��!)����P �!������
"��������������������������#V3�����������.�����5��!)����P ��!����(������������
6�����"��������2�����������"�������������� ����������"����5�"����� ��)�!����
��"������"������������"��!�)�������?����������������"� ���"���(��B������"���)�������
��� ��"���� �����"���� �2������� #��� ��� ������ ��� R60� �� R-<�"�"H�� ��� ������"� R<S� )�
�������R60�������������"����(�)���������"��S�<:e��&��������T�
� ������������������"���������Z�[��<2T�S�<:e�&<0<'G��
� ������������"����"���������Z� [��<2T�S�<:e�&<0<'G��<=G5Ge��
� �� ����������� ���"�,�������������"�����"����"�������� � ���� �� ��7�;<��<2T�
�
�
�
59
S�<:e��&<0<'G��<=G5Ge�"�2"�$��
� ��������������������"��������������������!�������������.���������;<!�
��"�!��;<!��������;<!����!������;<��<2T�S�<:e����������$��
� B����������(����� ������������"��������������"�� ���-�������������.��!��
��������.��!����"���.����������.�������������.��$������"�����
<2T�
Seleção S
<SELECT ENTITY="Livro"> <ATTRIBUTE>título</ATTRIBUTE> </SELECT>
Restrição R
<WHERE> <COMPARE TYPE="EQUAL"> <ATTRIBUTE>título</ATTRIBUTE> <CONSTANT>Banco de Dados I</CONSTANT> </COMPARE> </WHERE> S ΦΦΦΦ R <SELECT ENTITY="Livro"> <ATTRIBUTE>título</ATTRIBUTE> <WHERE> <COMPARE TYPE="EQUAL"> <ATTRIBUTE>título</ATTRIBUTE> <CONSTANT>Banco de Dados I</CONSTANT> </COMPARE> </WHERE> </SELECT>
>�� R-<�"�"H� �"���(���� ��� �������� �������� ��� ����"���� �� ���������3����� &����
����T�
� ����������������������������"���������������������� ��/�����P%����!��;<��
<2T� ���� ������� �I� ��(��#�(��P ��-����# ��-����!� � ���� ��/�����P%����!��; <�
��"�����(����
� ��������"�!� ��� ��������� �� ,�"���� ������"�� �� ������!� ������ � ���� ��
R����P%����!��;<��
� ������������������������������������� ��"�"�!����������������"���������
�� ������!� ������ � ���� �� /����P'!(����;<�� <2T� �� �� ������� � I�
� ��-����# ��-����P�(��#�(��$-J��-����!� � ���� �� /����P'!(����; <� ��"����
��-����# ��-����P�(��#�(����
�
�
�
60
� ��������"�!� ��� ��������� � ��"�� � �� ������!� ������ � ���� ��
/����PM��P'!(����;<��
� ����������"�!������������������i���-���������������.�������"�����.�����
������"��������������
<2JT��(���i� ��-�����^��(��# ��-������
<2KT��(��# ��-�����Y��(���^� ��-�����
Algoritmo Reformule(Consulta, Fonte) {Consulta é a consulta do usuário em XEQ e Fonte é uma fonte de dados capaz de responder a consulta. Esse algoritmo é aplicado para cada fonte capaz de responder à consulta}
S := Consulta/QUERY/SELECT {Atribui-se a S o elemento SELECT da consulta em XEQ} L := nova consulta XEQ {Inicia-se uma nova consulta em XEQ que será a consulta
reformulada para a fonte} C := novo Caminho vazio {Inicia-se um novo caminho vazio}
Reformule_Selecao(L, S, Fonte, C)
Retorne L
Fim do Algoritmo
�
Algoritmo Reformule_Selecao(Consulta_Local, Selecao, Fonte, Caminho) {Selecao é um elemento SELECT de uma consulta XEQ. O parâmetro Caminho contém um caminho da entidade seleção raiz até a entidade da seleção atual. Ele é preenchido a cada chamada recursiva deste algoritmo. Para a seleção raiz, o caminho inicia vazio e, para cada subseleção, ele é alimentado com a entidade selecionada} {Adiciona-se ao caminho a entidade da seleção que está definida no atributo ENTITY} Caminho:= Caminho + Seleção/@ENTITY NS:= Caminho_Para_Consulta(Consulta_Local, Assertiva_Entidade(Fonte, Caminho)) {Para cada atributo filtrado pela seleção, encontra-se sua correspondência local e a adiciona na Consulta_Local.} Para cada A = Selecao/ATTRIBUTE faça Caminho_Para_Consulta(Consulta_Local, Assertiva_Atributo(Fonte, Caminho + A/texto())) {Para cada subseleção da seleção atual, executa-se recursivamente este algoritmo} Para cada S = Selecao/SELECT faça Reformule_Selecao(Consulta_Local, S, Fonte, Caminho) {Verifica se existe restrições na seleção atual. Se existir, ele reformula a restrição e a adiciona na Consulta_Local} Se (W = Selecao/WHERE) ≠ ∅ Então Consulta_Local:= Consulta_Local Φ Reformule_Where(NS, W, Fonte, Caminho) Fim do Algoritmo �
�
�
�
61
Algoritmo Caminho_Para_Consulta(Consulta, Caminho) {Consulta é uma consulta XEQ, Caminho é um vetor de Entidades, Referências e Atributos} Caminho_Inclusao := Caminho {caminho de inclusão é igual ao caminho} {Se houver uma parte inversa no caminho, essa parte será adicionada à consulta passada no parâmetro e o novo caminho de inclusão será composto pela pelo primeiro elemento do caminho mais a parte não inversa do caminho} Se Parte_Inversa(Caminho) ≠ ∅ Então Caminho_Para_Consulta(Consulta, Parte_Inversa(Caminho)) Caminho_Inclusao := Primeiro_Elemento(Caminho) + Parte_Nao_Inversa(Caminho) Fim do se {Transforma-se o caminho em uma consulta XEQ e a unifica com a consulta passada no parâmetro} S:= Transforme_Consulta(Caminho_Inclusao) Consulta:= Consulta Φ S Retorne S Fim do Algoritmo�
Algoritmo Reformule_Where(Consulta, Where, Fonte, Caminho) {Where é um elemento WHERE de uma seleção XEQ} W := novo Elemento WHERE vazio {Atribui-se a E o primeiro subelemento do elemento Where} E := Where/primeiro() Se E for um Elemento COMPOSE Então W := W Φ Reformule_Composicao(Consulta, E, Fonte, Caminho) Senão W := W Φ Reformule_Comparacao(Consulta, E, Fonte, Caminho) ����Fim do Se
Retorne W�
Fim do Algoritmo Algoritmo Reformule_Composicao(Consulta, Composicao, Fonte, Caminho) {Composicao é um subelemento COMPOSE de um WHERE} C := novo Elemento COMPOSE vazio Para cada E = Composicao/* Faça Se E for um Elemento COMPOSE Então C := C Φ Reformule_Composicao(Consulta, E, Fonte, Caminho) Senão C := C Φ Reformule_Comparacao(Consulta, E, Fonte, Caminho) �������Fim do Se Fim Para � Retorne C Fim do Algoritmo Algoritmo Reformule_Comparacao(Consulta, Comparacao, Fonte, Caminho) {Comparacao é um subelemento COMPARE de um WHERE ou de um COMPOSE} C:= novo Elemento COMPARE vazio E1:= Comparação/primeiro() {Primeiro subelemento do COMAPRE} E2:= Comparação/segundo(){Segundo subelemento do COMAPRE}�
�
�
�
62
{Se E1 for um atributo, então ele é reformulado e o adicionado ao COMPARE. Caso contrário, ele será uma constante e apenas adicionado ao COMPARE} Se E1 for um Elemento ATTRIBUTO Então C:= C Φ Reformule_Atributo(Consulta, E1, Fonte, Caminho) Senão C:= C Φ E1 ����Fim do Se
{Se E2 for um atributo, então ele é reformulado e o adicionado ao COMPARE. Caso contrário, ele será uma constante e apenas adicionado ao COMPARE} Se E2 for um Elemento ATTRIBUTO Então C:= C Φ Reformule_Atributo(Consulta, E2, Fonte, Caminho) Senão C:= C Φ E2 ����Fim do Se �
Retorne C Fim do Algoritmo Algoritmo Reformule_Atributo(Consulta, Atributo, Fonte, Caminho) {Atributo é um elemento ATTRIBUTE de um COMPARE} A:= novo Elemento ATTRIBUTE vazio C:= Caminho + Atributo/text() {Caminho para atributo da consulta de mediação} LC:= Assertiva_Atributo(Fonte, C) {Caminho para a correspondência local} {Cria-se o elemento ATTRIBUTE e como conteúdo define-se o último elemento do da correspondência local} A/text():= Ultimo_Elemento(LC) {Abaixo, faz-se uma verificação se o atributo local pertence à entidade da seleção atual. Se não for, ele especifica a entidade do atributo em ENTITY} GC:= Transforme_Caminho(Consulta) Se GC - LC ≠ ∅ Então A/@ENTITY:= GC - LC Retorne A Fim do Algoritmo
�
"3�3" $������� ������- �����
B�7��������������"���)��������?����������������������"���������������"��"���
�����������"���B���������������"�������� "��"����� )� ���"���� ������������>��������
���������"�����������"�!������������������"���������������")��������"�������
"��"����������2���� �������"���������"���
�� ������"� ����� ��� �� "��"��� ��"?� ��� ����"�� R<S� �� )� "��(�� ��� � ���������
�����������"�� � ���"�� ����� �&S0!� RS���H!� BS0!� ��"��� ��"��$�� B� "��"��� "��)�� ����
"��(�����������"�������������"�����R60�#���)�������"���������"�������5�"�����
B�������"������"��)���������"�����������������#����R-<�"�"H�����"���
>�������� ���������������%?����������������#�������R-<�"�"H!���������������
�
�
�
63
���"����������������'������������<�#������6��� ���
"3�3� � �5��� �������8�6�������4����� �
B�'��������� ��� <�#���� �� 6��� �� "��� � "���� �� ������� ��� ��� ��������� ��
���"������������������������#���������� ���>�����������"������!��"��������"���� ��
������)����"�������������������"������������"��������������"����������#������
���� ��)� " �� ������2� #��"�� � "���� �� ��������� ���� ������"��� �������(��� #��� ��
'������������<�#������6��� ���(���"������������������:������������'�����"�!�
���)��"���������������
B������"��� �!(�����������������"������?���!������2������������"��� �!(����P���������
<�"������������ �����.���� ������"!� ���"��������� ��"���� ������"��#����������"��
������"������������"�������B������"��� �!�����P������!���������"����������"��R60!�
������"����������������������������"�R "�P�CWWW'DO�F��������"�����������"�
������"�������������"���'���"����������"���������"$���"���)�������"�����
���"��������� �������������"��"��)���������"��� �!(����P%!�����P���������>������
�� ������"�!� ��� ���� ���� ������� �� ����� �� �����������"�� "��)�� �� �����"���
'!���P%����!����
�� �2����� �� ������ ����� �����"���!� �"���(������ �� �������∪� ��� �(��� � ��� �� ��
���R60��B����������2������������"�T�
<2T��
Dados D1 <Funcionário> <nome>José da Silva</nome> </Funcionário> <Funcionário> <nome>Maria Euclides</nome> </Funcionário>
Dados D2 <Funcionário> <nome>João Victor</nome> </Funcionário>
���������������������������������������� ��������
P�R "���R60� "��0�����$�-�)���������������������"����������R60��
�
�
�
64
D1 ∪∪∪∪ D2 <Funcionário> <nome>José da Silva</nome> </Funcionário> <Funcionário> <nome>Maria Euclides</nome> </Funcionário> <Funcionário> <nome>João Victor</nome> </Funcionário>
Algoritmo Converta(Consulta, Fonte, Dados) {Consulta é a consulta do usuário em XEQ, Fonte é o identificador da fonte e Dados é o documento XML retornado pelo tradutor}
S := Consulta/QUERY/SELECT {Elemento SELECT da consulta} {Documento vazio que será o documento convertido – documento resposta}
D := novo documento XML vazio
C := novo Caminho vazio
Converta_Selecao(S, Fonte, Dados, C, D)
Retorne D
Fim do Algoritmo�
Algoritmo Converta_Selecao(Selecao, ID_Fonte, Dados, Caminho, Convertido) {Seleção é um elemento SELECT da consulta do usuário em XEQ. Caminho é formado de forma similar ao que é formado no algoritmo Reformule_Selecao} CG:= Caminho + Selecao/@ENTITY {Caminho global} {Atribui-se a CL a correspondência da entidade da seleção atual} CL:= Assertiva_Entidade(Fonte, CG) {Caminho local} {Converte-se CL em uma consulta XPath e então faz-se a consulta ao documento e retorna um vetor de instâncias da entidade local} R:= Consulte_Documento(Dados, CL) {Para cada instância da entidade local no documento, converte-se essa instância para o formato da entidade do esquema mediação correspondente e a adiciona ao documento resposta} Para cada E = R/* Faça Converta_Elementos(Fonte, CG, CL, Convertido, E) {Execute recursivamente o algoritmo para cada subseleção} Para cada S = Selecao/SELECT faça Converta_Selecao(S, Fonte, Dados, CG, Convertido) Fim do Algoritmo�
Algoritmo Converta_Elementos(Fonte, CG, CL, Convertido, Elemento_XML) {Converte a instância Elemento_XML em uma instância da entidade de mediação. Isso é feito, verificando-se cada correspondência da entidade local com a entidade de mediação} EG:= Converta_Entidade_Mediacao(Fonte, CG, CL, Elemento_XML) {Navega-se no documento resposta até o local da entidade mediação} UEG:= Assertiva_Entidade(CL – Ultimo_Elemento(CL)) Elem:= Navegue_Ate(UEG, Convertido)
�
�
�
65
{Adiciona-se a entidade ao documento resposta}
Elem:= Elem ∪ EG Fim do Algoritmo�
Algoritmo Converta_Entidade_Mediacao(Fonte, CG, CL, Elemento_XML) Novo:= Novo_Elemento_XML(Ultimo_Elemento(CG), “”) {Cria-se um novo elemento XML} {Cada atributo da entidade local é convertido para seu correspondente da entidade de mediação} Para cada A = Atributos(CG) Faça LA = Assertiva_Atributo(ID_Fonte, CG + A) E = Consulte_Documento(Elemento_XML, CL - LA) Se E ≠ ∅ Então Novo:= Novo ∪ Novo_Elemento_XML(A, E/text()) Fim Para Retorne Novo Fim do Algoritmo�
>��������"�������������"������������"������������������#���������� ��!������
�����������"������"��)����5�"������������
"3�3) �������� �������� ��
�� "���� �� 5�"������ �� >��� )� �����"� ����� ���� �� ���������� ��� ��#���� ��
���� ���>��������"�������������"������������������������������#���������� �!�
�������"� �����������#�����������B���"�������������"�?�������"���������������3����
��� ���"���� � ��"���� �����������"��!����� ������������"���� ����"������ "����"�����
������"����'���"�������"���!�����"����������?�������������������"+�����������"���
������"���������"��)������*����"+��������"���'���������"+������"�%�������"������
�� ��� ���"�!� ���?� ���"� ��� ��� �� ��� "����"��� �� ���"+����� ��� �����"�� ��� ��� ����
���"+���� ���� ������"� ���������� ��� ��������"3����� ��"��� �� ���"��� �� ��� �������� �� ��
������!�"���������!�����"��������!���"�����"��$�� ��� ��"�"��������"�������
B������"���'!��"����������������"���������"������"��������������,�����������"��
��"������ �� �����������"�������������"�� ������� ���������"�������������� ���"$� �����
�������� ��� ������"��� ��� ����� � ���� ���� �2����� �� �����"���S!���� /������"�!� ��
�����"������ ������� �����������"�� � ���� ��"������'� ������"�� ���� ���������"��� )�
���"������ ���� ��� ��"���� >���� ����!� �� �����"��� ������"� �� ����"���� ��
���������3���� ��� ����� #��� )� �� "����"�� �� ������"�� � ��"��� �����������"���
<����"�����"����"�!�����������"����������"�������������2��"�������"���������"����"��
�� ������"�� ����� �� � ��"��� �����"��� &�� ������!� ���� �2���"� �����������"�� ��
�����"���S!�������������"���!��������"�?���!���������������"�������"�����"������
�
�
�
66
��������"����������
Algoritmo Integre(Documentos) {Documentos é um vetor contendo todos os documentos provindos das fontes locais}
D := Documentos[1] {Primeiro documento do vetor}
{D é o documento resposta que inicialmente é o primeiro documento do vetor.
Depois, é feita a união entre esse documento e cada outro documento do vetor }
Para i:= 2 até Total(Documentos) Faça
MD:= Documentos[i]
C:= novo caminho vazio
Uniao(D, MD, C)
Fim do Para
Retorne D
Fim do Algoritmo�
Algoritmo Uniao(D1, D2, Caminho) {Para cada elemento de D2}
Para cada E = D2/* Faça
{Se o total de subelementos de E for maior que 1, o elemento é uma entidade}
Se Total(E/*) > 1 Então
C:= Caminho + E
A:= Assertiva_Mapeamento(C)
Elems:= Consulta_Documeto(D1, C)
{Se a entidade existir no documento unificado, executa-se recursivamente o
algoritmo para analisar as demais subentidades. Caso contrário,
adiciona-se a entidade e subentidades ao documento unificado}
Se (∃∃∃∃ X em Elems | E/Ultimo_Elemento(AM)/text() = X/text()) Então
Uniao(X, E, C)
Senão
D1:= D1 ∪ E
Fim do Se
Fim do Se
Fim do Para
Fim do Algoritmo�
>����������"����!���������"�������)���"�����������?����"��)�����"��������������"���
"3�3( 8<��� �
�� ��� ������� ��"������"�� �� "��� �� ��������!� ����� ���"��� ��� �2������ ��?"�����
'�������� ��� ��#����� ���"���� �� ������ O�E�� ��� ����"���� �� ���������3���� ��"��� ���
��#������ �����"����������2�T�
�
�
�
67
Assertivas entre o esquema de mediação e a Fonte 1 Livro ≅ (Página1.Página1_Capítulo1.Capítulo1.Capítulo1_Livro1.Livro1)-1 Livro.título ≅ Livro1.título Livro.editora ≅ Livro1.editora Livro.Capítulo ≅ Capítulo1 Capítulo.título ≅ Capítulo1.título1 Livro.Página ≅ Página1 Página.texto ≅ Página1.texto1 Assertivas entre o esquema de mediação e a Fonte 2 Livro ≅ Página2.Página2_Capítulo2.Capítulo2.Capítulo2_Livro2.Livro2 Livro.título ≅ Livro2.título Livro.editora ≅ Livro2.Livro2_Editora2.Editora2.nome2 Livro.Capítulo ≅ Capítulo2 Capítulo.título ≅ Capítulo2.título2 Livro.Página ≅ Página2 Página.texto ≅ Página2.texto2 &������#�����"��"�����������"����5�"����3������"���������"�������?�������RS���H��
�����!�����������"� ���2�T�
for $b in //Livro/Capítulo return $b
<�����?�������"��������������"� ���������"��R<ST�
<SELECT ENTITY="Livro"> <ATTRIBUTE>*</ATTRIBUTE> <SELECT ENTITY="Capítulo"> <ATTRIBUTE>*</ATTRIBUTE> </SELECT> </SELECT>
�����!�����)�!���2�"����������������� ������������"� �2T�
<SELECT ENTITY="Capítulo1"> <ATTRIBUTE>título1</ATTRIBUTE> <SELECT ENTITY="Livro1"> <REFERENCE NAME="Capitulo1_Livro1"> <MAP ATTRIBUTE="ref_livro1">id_livro1</MAP> </REFERENCE> <ATTRIBUTE>título1</ATTRIBUTE> <ATTRIBUTE>editora1</ATTRIBUTE> </SELECT> </SELECT>
��������"� �2����?�"��(����������������2�����������"� )2����&S0�C6��"��QEFT�
SELECT Capítulo1.título1, Livro1.título1, Livro1.editora1 FROM Capítulo1, Livro1 WHERE (Capítulo1.ref_livro1 = Livro1.id_Livro1)
�
�
�
�
�
�
68
���)�!���3�"����������������� ������������"� �3T�
<SELECT ENTITY="Livro2"> <ATTRIBUTE>título2</ATTRIBUTE> <SELECT ENTITY="editora2"> <ATTRIBUTE>nome2</ATTRIBUTE> </SELECT> <SELECT ENTITY="Capítulo2"> <ATTRIBUTE>título2</ATTRIBUTE> </SELECT> </SELECT>
��������"� �3����?�"��(����������������3�����������"� )3����BS0�C'""���DDFT�
SELECT L.título2, E.nome2, C.título2 FROM Livro2 L, L.Capítulo2 C, L.Editora2 E
&������#����)�!���2���"����������%��"���������"����)2T�
<RESULT> <Capítulo1> <título1>Bancos Relacionais</título1> <Livro1> <título1>Bancos de Dados</título1> <editora1>Planeta</editora1> </Livro1> </Capítulo1> <Capítulo1> <título1>Bancos Orientados a Objetos</título1> <Livro1> <título1>Bancos de Dados</título1> <editora1>Planeta</editora1> </Livro1> </Capítulo1> <Capítulo1> <título1>Bancos XML</título1> <Livro1> <título1>Bancos de Dados</título1> <editora1>Planeta</editora1> </Livro1> </Capítulo1> </RESULT>
&������"��)��#����)�!���3���"����������%��"���������"����)3T�
<RESULT> <Livro2> <título2>Bancos de Dados</título2> <Capítulo2> <título2>Bancos Relacionais</título2> </Capítulo2> <Capítulo2> <título2>Bancos Objeto-Relacionais</título2> </Capítulo2> </Livro2> <Livro2> <título2>Modelagem de dados</título2> <Editora2> <nome2>Planeta</nome2> </Editora2>
�
�
�
69
<Capítulo2> <título2>XML Schema</título2> </Capítulo2> </Livro2> </RESULT>
'�������"�����?�������"��������'������������<�#������6��� ��� ��"�"�!����
�)2�"������T�
<RESULT> <Livro> <título>Bancos de Dados</título> <editora>Planeta</editora> <Capítulo> <título>Bancos Relacionais</título> </Capítulo> <Capítulo> <título>Bancos Orientados a Objetos</título> </Capítulo> <Capítulo> <título>Bancos XML</título> </Capítulo> </Livro> </RESULT>
<�������)3�"���������������"��������"��T�
<RESULT> <Livro> <título>Bancos de Dados</título> <editora>Planeta</editora> <Capítulo> <título>Bancos Relacionais</título> </Capítulo> <Capítulo> <título>Bancos Objeto-Relacionais</título> </Capítulo> </Livro> <Livro> <título>Modelagem de dados</título> <editora>Planeta</editora> <Capítulo> <título>XML Schema</título> </Capítulo> </Livro> </RESULT>
������!����������"���� ����"�����������"�����������#�����"�����������������"���
�������B������"�������������"���������T�
<RESULT> <Livro> <título>Bancos de Dados</título> <editora>Planeta</editora> <Capítulo> <título>Bancos Relacionais</título> </Capítulo> <Capítulo> <título>Bancos Orientados a Objetos</título>
�
�
�
70
</Capítulo> <Capítulo> <título>Bancos XML</título> </Capítulo> <Capítulo> <título>Bancos Objeto-Relacionais</título> </Capítulo> </Livro> <Livro> <título>Modelagem de dados</título> <editora>Planeta</editora> <Capítulo> <título>XML Schema</título> </Capítulo> </Livro> </RESULT>
"3" � �������*���-����
=��"�� ���"���� ���� ������"�� �� ���"��� �� ��"���� �� �� ��� 5�"���� ������"�� ����
C01����DEF�� B� 5�"���� ����-��� ��� �������� #��� �������� ��� ��� �� ��"���� �� ���
��"���������������������"���������"@���������"����3�����B������������������"���
5�"���� ��"?� ��� �"�� �� #��� ���� ������"� �����.��� ��� ���� �� �� ������"�� �� ���� �� ��
���"��� �� ��� �����"��� ��+������� B� ���"��� "��)�� ����3� ��� ������� �� �� ���
����������?�������5�"���� ����>��!���������"���������"�����"�������"�����(����
B������������%�"������"��"��������"?����������"����5�"���� ����>����=�����������
�����"��� �� ������ #��� "��� ����� ��������� �1���� �� 7��������� �� '�����"��� B�
7�����������'�����"�� )� �������?�������� ����������� ������"������?���!� ���"������#����
���"��� � �� ��(��� �� ��������� *� ������"!� ���������� � ������"� ��� ���������"�� ��� �����
���"��!� �������� ��� ��� ���������"��� �� ���"��!� ��"����� ������ ��� �� �����3-���� ��� ��
���?�����B�7�����������'�����"���������������T�
� ����� ����� � �B���� T�)��������?����������������������"�������?���X�
� +����� ����� � �������T� )� �������?���� ���� "��(��� � ������"� �� ���?���� ��� ���
��������������������"����'�����������������������������"��R<S��$�%!��&�
����&� ��!"��"�$� #��� )� ��� ��������� ���� ��� R60� #��� �����"� �� ��������� ��
��������� ����"��� ����������"�X�
� �� ����� ������ �������T� )� �������?�������� ���������� � ������"������?���� ���
������"��#������ ����������������"��������X�
� $������� ������- ����T�)��������?�����������������������"�����������"��X�
�
�
�
71
� � �5��� �������8�6�������4����� T� )� �������?�������� ������� ��������"��
�������������"������������������#���������� �X�
� �������� �������� �T� )� �������?���� ���� �������� "���� ��� ������"���%?� �� �����
��������#���������� ������"���?-����������,�����������"�����������"��������
���?�����
A?����� �����"���� ����� ������"��� ��� ���"��� "��� �� ��������� �� ��������� �� ��
������"�� ��7��������� �� '�����"��� <����!� ���� �2����� ��� �2������ ��� �� ����������
��"������"����"���������������
=�� ���"���� ������"�� ����� �"���� � ��������"� �� �� ��������� ���"1"���� �� 5�"���!�
�������3�����*���������"� ����7�����������'�����"��
�
�
�
�
72
������� ����
&� �'�� �� �������������������� ������� ��
=��������"���!�����"�����������"������������"� �������"1"������5�"���!��������
3����� *� ��������"� �� �� 7��������� �� '�����"��� &�� �� ������"��� ��� �1����� ��
������������#�����������"���!�������������������� ��#�������������������������
��� �1����!� ��"��"���� �� ��� �"���(�!� ��"��� ��"����� G��)�� �������� � ������"�� ��
���������#�������������"�������������������������"� �������"�����%��"������������
���#�3�������������������#���� ���������������"�����
>�����*�������2����������"���5�"���!��������1������������"���������"���
��� #��� ��� �������� ���� �� ������ ����������(� ��� "��"���� �����!� �������� � ���
�#��"�"���������������%�"���������#��"�"���������������"��
<�"�� ���"���� )� �����(�� ����� ������� =� ��� �� P�K� ����� ���� ������ �� "����������
�"���=� ��� �� P�E���������"��� � �#��"�"��� ��������=� ��� �� P�O������ �"���� �
�������������"���������� ��P�P�������������������"��"������"������������"1"����� ������!�
����� ��P�L!���������������������.����
�3� +��� � ������ ������
�������������������� ��#����"���(�������������������"������1����������"�������
� ���������9�!�������������"�����!������������������������,�������� 5����
��"�������������� ��R60�������R60�&�����CA������DJF���
�� ������!� ���"���� �� � 5� �� ��� �������� �"���(��� �� ��������"� �� ���� ���� ����.���
����������������"��T�
�
� �/������ ��=1��<%�>T�� 5���������������6"����0�2��&���6�����H�"���$!����
�����������������������������9>/'���"����������?���������� ���������
�
�
�
73
������ �� ��� ���������� ��� ��� R60�� <��� � 5� "��)�� ���� �"���(� ��
������� ������#�������/>���������������������"���������������5�"����X�
� N�#4� =O�����%%>T� 9>B6� )� ��� � 5� �� �1���� ���"�!� ���� ��� ��X���"�� �
������� �� �� R60� ����� ��%�"��� 9��� \� �"���(� ������"�� ���� ������ ���
�1����������"���������������R60X�
� N���T� ��(��� �� �1���� ���"�� ��� � � 5� 9>/'� � &��� �����"�� "��)�� ���9�!� ���
������ ������ �� ��� ����������� 6��� ������������"�!� �� %"�� �������� ������ ��
����������6&�&S0�&�������>��"������"���.���#�����(�������>/��������!����
���������"���(���������(��������������&S0�&�����X�
� K�����T�����������R60������"�� ���9���� "��)���"���(������� 5�>/����������B�
R��������"?�"�"����"����������������.���R60���R60�&����X�
� N�K&�=����� ��%�>T� �������� �����T�(�� �/'� )��� $��� /������!"!� 9�R � ������ ���
��.���&�R��&������� 5�����R60� �����$�C����"����DEF���>B6��>������"�B�%��"�
6���$� CW��DDF� �������� #��� )� ��������� ��������� ��"��� �(��� ��� ����!"� ���R60�
����������#V3����������"����������"�����������"��"����������?�����X�
� N�5���T� �������� �����T�(�� ������� ������� )� �����������������������������
�������� ��� �����.��� 9��� ��� ������ �� ������� )� ��� �������"� #��� �3� ���
���������� �� �� ��� ���?"��� �� � ������"�� ��� ��� ������� 9�� #��� ����
�������������.�������������?"����B�9�''�)�������"��� ����RS���H����
R<S�������?"����"���(�)�������������WE'X�
� K�1+T���R&0G�)������������ ���WE'!���������� ���� ��&��������!� ��������
"�������� ����������"���R60��B�R&0G�)��������5�"�������"������������
������"�R<S�������������"������"������������
�3� ����6���������������
��#������������������ �������"��� 5�"���� ����������������(!�����������"�������
�������������������������"��!�#��������������#�������������"��!����#�����#������
����"����������#���!�������������������������������"1"�����!����"����!���������������
��������"�����������"����=��������"1"���!�������"�����������2��#�����������������"��
�"��"�����"����������"���� �����"���������������
�������"�������7�����������:�#����"��������?���!���7�����������>"�W ��������
�
�
�
74
�� �� 7��������� � '����� �� ���� �� �� ���������3����� ��"��� ��#����� )� ���"� �� �����
���������������"���������������R60�� ������������#��"�"����������)����"����
������P�J��
Tradutor Tradutor Tradutor
OracleSQL Server
Nú
cle
o c
om
um
Lookup Lookup Lookup
Mid
dle
wa
re
consultas
esquema de mediação
Base de
conhecimento
das fontes locais
Am
bie
nte
de
ge
ra
çã
o d
as
co
ns
ult
as
de
me
dia
çã
o
Gerador de consultas de
mediação
Gerenciador de esquemas
conceituais
Am
bie
nte
de
in
teg
ra
çã
o d
e
da
do
s
Base de
conhecimento
do mediador
Gerenciador
de consultas
Gerenciador
das fontes
Mediador
Tamino
�
-������3����6��������� ����� ��� �'�� �� ��������3�
�3� 4 �������
������������������������"1"���������������"��)����������60�C/����DEF��
������"���(��������������"��!����������������������������#V3���������������
�����"�����" �������(��������"��!���%�������)����"�����������P�K��
commomcore datamodel
DSKB
MKB
mediator
�
-������3��������������� ����
'� ���"�� ���?� �"���� ���������"�� � �������� B� ���"�� �������� "��?� ��� "��� ��
�
�
�
75
�������!����"��#���������"��������"?���������������
�3�3� &�� ������� ����
<�"�����"��������������%��"�����������#�����������"��������"��R<S!���#��������R-
<�"�"H� �� ����"���� �� ���������3����� <���� ������� �(��� ��������"�� ��� ����� �������
������������R60�����������������"�����%�"����9�$���
B� ����� �� ������� #��� ��������"� ��������R-<�"�"H� )����"��� �� ������ P�E� �� ����
�������� ���"�����������T�
� K8���L��,��� -� ��������"� ��� ��#���� R-<�"�"H�� ��� ��#���� R-<�"�"H� )�
��(���� ��� R60�� <��� ������ ����������(� �)"���� ��� ������"�� ��"���!�
"����"���������������"��X�
� ���������-���������"����"����"�X�
� 8���L�-���������"������"��X�
� ����� ��,������ ���� -� ��������"� ��� ����������"��� B� ����������"�� ��!�O�� )�
��������"�� ���� ������ �!��!�� �� �� ����������"�� ��)���!��� )� ��������"�� ����
��������)���!��X�
�
�
�
76
Reference
name : String
Reference()
setRelationship()
setRelationship()
getName()
getEntity()
getParent()
getReferencing()
getReferenced()
(f rom XEntity )
Attribute
name : String
attributeType : String
key : boolean
nullable : boolean
cardMax : int
cardMin : int
Attribute()
getName()
getParent()
getAttributeType()
getKey()
getNullable()
getCardMax()
getCardMin()
setCardMax()
setCardMin()
setKey()
setNullable()
setAttributeType()
(f rom XEntity )
+referencing1..n1..n
1..n
+referenced
1..n
RelationshipInte
rface
getEntity()
getName()
getParent()
(f rom XEnt ity )
Contains
name : String
Contains()
setContent()
getEntity()
getName()
getParent()
(f rom XEntity )
Entity
name : String
Entity()
putAttribute()
putAttribute()
putReference()
putReference()
putContains()
putContains()
getAttribute()
getRelationship()
getReference()
getRelationshipEntity()
getAttributes()
getReferences()
getName()
(f rom XEntity )
0..n0..n
0..n0..n
11
XEntitySchema
ID : String
data : String
XEntitySchema()
readXEntityFile()
getXML()
getID()
putRootEntity()
getRootEntity()
getRootEntities()
pathToRelation()
(f rom XEnt ity )
1..n1..n
�
-������3�������������������������6�����K:8���L�
B�������� ������� #��� ��������"� ��� ������"�R<S� )����"��� �� ������ P�O� �� ����
�������� ���"�����������T�
� K82�-���������"����������"�R<SX�
� K82�������-���������"��������� ������������� ���������"��X�
� K82���������-���������"������������ ����������"��������"����"�X�
� K82�� �������-���������"��������� ����%��� �X�
� K82J,���� -� ��������"� ���������� ���"���.����\� ���������� ���$%� ������� ���
���$%� ������X�
� K82� � ��� -� ��������"� ��� �������� �� �1����� \� ������ ���� ��"����
$%� ����������$%� ������X�
� K82� ����� -� ��������"� ��� ������ ��� ��� ���� ��� ������� �� ��
$%�����������$%� �!���!�X�
�
�
�
77
o K82���D�����-���������"���������� ���������"����"�X�
o K82� �������-���������"���������� �������������"�"���
XEQ
XEQ()
val idate()
setSelect()
getSelect()
convertToSchema()
convertToXML()
(from XEQ)
XEQAttribute
name : String
XEQAttribute()
getName()
(from XEQ)
XEQReference
name : String
XEQReference()
setMap()
getMapValue()
getMapAttributes()
getName()
(from XEQ)
XEQSelect
enti tyName : String
XEQSelect()
addAttribute()
addSelect()
setReference()
setWhere()
getName()
getAttributes()
getSelects()
getWhere()
getAttribute()
getSubSelect()
getReference()
setParent()
getParent()
(from XEQ)
1..n1..n
0..n0..n
1..n1..n
0..10..1
XEQWhere
XEQWhere()
XEQWhere()
getContent()
(from XEQ)
0..10..1
XEQCompose
type : String
XEQCompose()
addCompose()
addCompare()
getType()
getContent()
(from XEQ)
0..n0..n
XEQAttValue
attribute : String
enti ty : String
XEQAttValue()
getEntity()
getAttribute()
setEntity()
(from XEQ)
XEQConstant
type : String
value : String
XEQConstant()
getType()
getValue()
(from XEQ)
XEQCompare
type : String
XEQCompare()
setCompareFrom()
setCompareFrom()
setCompareFrom()
setCompareTo()
setCompareTo()
setCompareTo()
getType()
getFrom()
getTo()
(from XEQ)
0..n0..n
Ou XEQCompose
ou XEQCompare
Combinação de
XEQAttValue e
XEQConstant
XEntitySchema
(from XEntity)
�
-������3"�������������������������� �������K82�
B� ����� �� ������� �� ����"���� �� ���������3���� )� ���"��� �� ������ P�P� �� ����
�������� ���"�����������T�
� � ����� ����������� ��-���������"�������"���������������3�����������#����
������ �������#����������X�
� ������ ��-���������"�������%��"��������"������"���������#������
�
�
�
78
Assertion
entityAssertion : HashMap
attributeAssertion : HashMap
mappingAttributeAssertion : HashMap
Assertion()
getLocalSchema()
getGlobalSchema()
addEntityAssertion()
addSubEntityAssertion()
addAttributeAssertion()
addMappingAttributeAssertion()
getEntityAssertion()
getAttributeAssertion()
getMappingAttributeAssertion()
(f rom assertions)CorrespondenceAssertion
CorrespondenceAssertion()
addAssertion()
getGlobalSchema()
getLocalSchemas()
readXMLFile()
getSchema()
getAssertion()
removeSchema()
getEntityAssertion()
getAttributeAssertion()
getMappingAttributeAssertion()
(f rom assertions)
1..n
XEntitySchema
(f rom XEntity )
1..n
�
-������3������������������������������5������� ����� ��.����
�3�3� &�� �����P/�
<�"�� ���"�� ���")�� � ����������� #��� ��������"� � ���� �� ����������"�� �� ���"����=�
>&U/�� �� ��(�������� ��#������� ���"��� �� �� �������.����� ������� ����� ���"����B�
���������������>&U/�)����"�����������P�L��������������� ���"�����������T�
� ��P/� -� ��������"� � ���� �� ����������"��� �� ���"���� <�� ���")�� ��� ��� ����
������'!)�X�
� � ������ � -� ��������"� �������.����� ���"��� ����� ���"�������� ���"�!� "��"��!�
��#�������R-<�"�"H!��������������"�����"��X�
� ���������� � -���������"��������.������������������"��������������!���������
�������"�����"��X�
� J����������� ���� -� ��������"� ��� ��"������ ��� �� "��"��� ��������$� �� ��� ���"���
�� �� ���"1"���� ���� ��������"�� � ������ G���������� ��� ������ �� ���
���������X�
� +������� ������ ����-���������"������"������������"��"���#���"��(�����#����
��������"��������������������������#����R-<�"�"H���������������"��� ����
���"1"����������������"���������5��!�����������������������������������
�
�
�
79
DSKB
DSKB()
getSchemasID()
getSchema()
getWrapper()
getTranslator()
getDbInfo()
getSourceInfo()
(f rom DSKB)
WrapperInterface
getDocument()
(f rom commomcore)
TranslatorInterface
translate()
setXEntitySchema()
(f rom wrapper)
XEntitySchema
(f rom XEntity )
SourceInfo
ID : String
timeout : int
SourceInfo()
getID()
getDataBaseInfo()
getWrapper()
getTranslator()
getSchema()
getTimeOut()
(f rom DSKB)
0..n0..n
DataBaseInfo
server : String
port : int
user : String
password : String
dataBaseName : String
dbmsType : int
frequency : int
DataBaseInfo()
getDataBaseName()
getDbmsType()
getFrequency()
getPassword()
getPort()
getServer()
getUser()
setUser()
setServer()
setPort()
setPassword()
setFrequency()
setDbmsType()
setDataBaseName()
toXML()
(f rom inf o)
WrapperBDR
xsl : String
WrapperBDR()
processQuery()
translateQuery()
executeQuery()
translateData()
(f rom wrapperBDR)
TranslatorBDR
xsl : String
TranslatorBDR()
translate()
setXEntitySchema()
(f rom wrapperBDR)
�
-������3)������������������������P/3�
B����"��>&U/��"���(� ������� �� ���"�� ������������B� �����!����� ������� �� ��"������� ��
"��� �� �� ��� �� �� ��#�����G������'!���)���� �� ������'!���)���!� ������"�����"��� �� ��
���"1"���!� ����� ��������"�� �� �������G���������� �� ���������� ��� ������ �� ���
�����������
�3�3� &�� ���4P/�
<�"�����"�����")�������������#��� ��������"������������������"�����������=�
6U/�� ����(���������#���������� ����������"���������������3�����B������
����������6U/�)����"�����������P�M��
XEntitySchema
(f rom XEntity )
CorrespondenceAssertion
(f rom assertions)
MKB
MKB()
setGlobalSchema()
addAssertion()
getGlobalSchema()
getCorrespondenceAssertion()
(f rom MKB)
1..n1..n
�
-������3(����������������������4P/3�
�
�
�
80
��� ����"���� �� ���������3���� � �� ��(���� ��� ��� �#����� R60� �����
�������!�#7���������"1����6U/������"��������2������������#�����������"����)����"���
�������T�
<?xml version="1.0" encoding="UTF-8"?> <ACM> <HEAD> <DATE>2004-31-08</DATE> <VERSION>2.0</VERSION> </HEAD> <ENTITY_ASSERTION> <MENTITY NAME="medico"> <LENTITY SOURCE="L1" PATH="agente_de_saude" INVERSE="false"/> <LENTITY SOURCE="L2" PATH="medico" INVERSE="false"/> </MENTITY> <MENTITY NAME="paciente"> <LENTITY SOURCE="L1" PATH="paciente" INVERSE="false"/> <LENTITY SOURCE="L2" PATH="paciente" INVERSE="false"/> </MENTITY> </ENTITY_ASSERTION> <ATTRIBUTE_ASSERTION> <MENTITY NAME="medico"> <LENTITY SOURCE="L1"> <ATTRIBUTE NAME="nome">nome_ag</ATTRIBUTE> <ATTRIBUTE NAME="especialidade">formacao</ATTRIBUTE> <ATTRIBUTE NAME="email">email_ag</ATTRIBUTE> </LENTITY> <LENTITY SOURCE="L2"> <ATTRIBUTE NAME="nome">NOME</ATTRIBUTE> <ATTRIBUTE NAME="endereco">ENDERECO</ATTRIBUTE> <ATTRIBUTE NAME="especialidade">ESPECIALIDADE</ATTRIBUTE> </LENTITY> <MATTRIBUTE>nome</MATTRIBUTE> </MENTITY> <MENTITY NAME="paciente"> <LENTITY SOURCE="L1"> <ATTRIBUTE NAME="nome">nome_pac</ATTRIBUTE> <ATTRIBUTE NAME="endereco">endereco_pac, complemento_pac, bairro_pac, estado, cidade_pac, CEP_pac</ATTRIBUTE> </LENTITY> <LENTITY SOURCE="L2"> <ATTRIBUTE NAME="nome">NOME</ATTRIBUTE> <ATTRIBUTE NAME="endereco">ENDERECO</ATTRIBUTE> </LENTITY> <MATTRIBUTE>nome</MATTRIBUTE> </MENTITY> </ATTRIBUTE_ASSERTION> </ACM>��
�
�
�
�
81
�3�3" &�� ������� ��
<�"�� ���"�� ��������"� �� ������ �� ����������� ���� ��"���� ���"��T� �� *���&��!�"��� �� ��
��������!�"���� B� *���&��!�"��� ��������"� �� 7��������� �� '�����"�� �� ���")�� �� �������
����&��!�"��!����� �!(�����!�����'!��"�����!�����&��)���������������"����������&5��!������'!���)�����B�
��������!�"��� ��������"� �� ���������� �� ���"��� �� ���")�� � ������ ��������!�"���� B� ���"��
�������� �������?� ��� "��� ������!� ���"�� #��� ������ "������ ������-��� ������ B� ����� ��
������� ��7�����������'�����"�� )����"��� �������� P�N� �� ���� ������� � �� �"���� �
������T�
� 2���L4������� -� ��������"���7�����������'�����"����5�"�����B����"����������
���������"�"��)�����"��������������"�#�����������"���"�����������&��!�"��X�
� 2���L+������� ������ ���� -� )� ��� ��"������ �������?���� ���� "��� �� �� ���
��������� ���������� ��� R<S�� =�� ���"1"���� ����� ��������"�� �� "���.���
RS���H����R<S��$����&3$%�$���&S0����R<S�����3$%�$X�
� 2���L�� ����� ��-�)��������?�������������������������"�R<S�����������%��"��
�� ����"���� �� ���������� ���� ������"� ��� ���������"�� ��� ������ ������ ��� ��
���"�����(�������������������������"X�
� ����� �5��� �� -�)� �������?�������� ������������������������!�"��� �� �����?-������
�������������#���������� �X�
� ������������ �� -� )� �������?���� ���� �������� ��� ���%��"�� �� ������"��� ����
�������"��� ��� �����"��� �� ������"�� ������ *�� ���"��$!� "���� �� ����� ���� ��
��#���� �� ���� �!� �� %��"?-���� ��� ��� ,����� ������"�� ������"�� �� ����� � ��
������?��������"����"�����������"��������"���������������3������"����"�����
������"���� ��"����"���#���������������"�������������"��������"+���������
��"��!���������#����%�����������������"�X�
�
�
�
82
QueryReformulator
QueryReformulator()
reformulate()
(f rom query manager)
QueryTranslatorInterfa
ce
translate()
(f rom query manager)
DataIntegrator
DataIntegrator()
integrate()
merge()
findElement()
getValues()
findElement()
(f rom query manager)
DataConversor
DataConversor()
convertToMediatorSchema()
(f rom query manager)
SourceManager(f rom sourcemanager)
QueryManager
QueryManager()
executeQuery()
reformulate()
convertToMediatorSchema()
(f rom query manager)DSKB
(f rom DSKB)
MKB
(f rom MKB)
XQuery2XEQ
XQuery2XEQ()
translate()
(f rom translate)
SQL2XEQ
SQL2XEQ()
translate()
main()
(f rom sql)
�
-������3!�������������������� �$������� ������ �������3�
&� �������� �� �2���L4�������
B� ����������"�� �� ����&��!�"��� ���� ���� ���"��� "��)�� �� ��� ����� ���� �
��#V3�������)"��������������������������"�����"����B����������)�����"�����������P�Q�
���"�����������T
� &� ���� ���-�B����?���������"�����������"���#���)�������!"������������������
"��)�����)"����7���������&;<������������&��!�"��X��
� &� ���� ���E�����"�-�)����"���������������"��� �����������������R<S�"��)����
�)"��� ���!�����;<��>�����!����-�������������%�"��R<S����(-�������� ���������
��������#���������� ��"��)�����)"���(������;<X�
� &� ���� ���E�)E�(E�!���0�-�"����������"��������������"��������������� ������������
�����)"�����)��������;<�)���������������"�����"������������"������������"��
��� �� ���"��� #��� ���� ��������� �(��� � ��������� �� )� ��"����� '� ���������"� )�
������������������!�"���"��)�����)"������������;<��!��������������!����)"���
�����%7�����!;<�)� ������������ �������*��������"�����������>�������� �����(��
�2���� �!���������"��������"���� ������������"��)�����)"���"��������!��;<X�
� &� ���� ���%������-��������"��������������?����"�����������������#������
���� ��"��)�����)"��� ��!(���5��������������;<��>�������� ������"���!�������
��� �����������"��)�����)"���!��"����;<X�
�
�
�
83
� &� ���� ����-���������"������������� ����"������������?����������"�"���
: Query Manager : Query TranslatorInterf ace : XEQ : DSKB : Query Ref ormulation : SourceManager : DataConv ersor : DataIntegrator : Usuário
2: translate(String)
3: XEQ(String)
4: v alidate(XEntity Schema)
5: getSchemasID( )
6: ref ormulate(String, XEQ)
7: addSource(XEQ, SourceInf o)
8: startExecution( )
9: getDocuments( )
10: conv ertToMediatorSchema(XEQ, String, Document)
11: integrate(Documentos)
1: executeQuery (String)
12: Documento
�-������30�������������6Q.����� ��� ���� ����� ������3�
&� �������� �� �� ����4�������
B� ����������"�� �� ��������!�"��� ���� ���� ���"��� "��)�� �� ��� ����� ���� �
��#V3���� �� �)"���� �������� ����� ������� ��"�����"����B� ��������� )� ����"��� �� ������
P�JD����"�����������T�
� &� ���� � �� -� ������&��!�"��!� ������ �� ������� "��� �� �������.��� �� ���"���
����"�� � ���� ������"� �� ���������"$� "��)�� �� �)"��� ���������;<� ���������� M$� ��
��������!�"��!��������)"��������%7�����!;<��������X�
� &� ���� ���E�����"� -���� �� ���"�� � ���� ������"� )� ������� ���"+����� ������
����&G������� #��� ���?� �������?���� ���� ������ � ������"� ��� ��� ���"��� >�����!� ��
�)"������������������;<���������&G������������)���������#�����" ������"��
��%�������"�����������%�������������B��)"��������;<�)��������������#�����
���"+�����������&G����������"������������������"����������"���0������������!�
����������!�"��� ���� ������������������"���������&G������� "��)�� ���)"���
���;<X�
� &� ���� �� �E� )E� (� -� ������ ���������� ���"���� �� ��� �� ����&G������� ������ B�
�)"������������� �����;<�������&G������5����)��������� �������������"�����
�
�
�
84
"���������"�����2���� ���'�����"���������"����%�"�����!����)"���)!��1�G������;<�)�
���������������(������"���"����2���� ��������&G����������������"�*����"��)�
���"�"��)�����)"��������������&;<���G������'!���)���X�
� &� ���� ��!� �� 0� -� ����(� #����������&G������� �����(� ��� �2���� �!� ���� �2���"� ��
�)"���)!��1�G������;<�����������!�"������������������)"��!�����������!�"���
�������� ��� "����%?� "�������� � �2���� ���'��� ����"���!� ����������!�"��� �����(� ���
�2���� ��"��)�����)"���!��)&;<������������"��������������&��!�"��X�
� &� ���� �� �%E� ��E� ��� �� ��� -� ������&��!�"��� ��#����"� ��� �����"��� ���������� �����
���������!�"��� "��)�� �� �)"��� "��������!��;<� #��� ������ � ��#����� �� � ��
����&G������� "��)�� �� �)"��� "��������!�;<� �� ������� ��� ���"� ���� "���� ���
������"��������"�"��X�
: QueryManager : SourceManager : QueryWrapper : QueryWrapperTimer :
WrapperInte...
1: startExecution( )
2:
3: start( )
5: start( )
7: processQuery(String, DataBaseInfo)
6: finalizeWrapper( )
4: wait()
9: notify()
8: finalizeWrapper(QueryWrapper)
10: getDocuments( )
11: getDocument( )
12: Documento
13: Documentos
-������3�%�������������6Q.����� �� ����4������3�
�
�
�
�
85
�3" +������� ����� ��
B� ���"1"���� ���� ��������"�� ��� �����"��� ����� ��� ������"� �� ���?���� ���� ����
��������� ��� ��� ���%��"�� �� ������"�� ������ "��)�� ������� ��� R<S�� ��� "��"���
��������$����� ��������"�����"��(���������"�����R<S�������������������"����������
=����� ��������������"1"���!������ "��"����� ���������� ����� ��������"������ "��� ��
�������"�)����"������������%��"������������������������������"����R&0G������������
�������� "��)�� � ������ P�JJ�� 6��"�� ������ ����� ������!� ���� �2�����T� ��� ��
������"��'B6 �:<��������"�����2����� ���������� ��&S0�)������
<!-- Stylesheet used to translate XEQ into SQL --> <xsl:stylesheet version="1.0" xmlns:xsl=http://www.w3.org/1999/XSL/Transform xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/"> <xsl:template match="QUERY"> <xsl:template match="SELECT"> <xsl:template name="makeSelect"> <xsl:template name="makeFrom"> <xsl:template name="makeWhere"> <xsl:template name="makeJoin"> <xsl:template match="REFERENCE"> <xsl:template match="WHERE"> <xsl:template match="COMPARE"> <xsl:template match="FUNCTION"> <xsl:template match="ATTVALUE"> <xsl:template name="tokenizer"> <xsl:template match="CONSTANT"> <xsl:template match="COMPOSE">
</xsl:stylesheet>
�-������3��������������������������� �K82�������21�
S������� ���"������� ��"����� ���"��!� ���������������"��� "3��#��� ���� ���"�����
���������T��$���������!��������.��������������2 ����������"�������� ����(����
��>&U/!���$�����������2"�������#��������"�����������������"�����������R-<�"�"H�����
��(��� �� >&U/�� >���"�� ��� "��"��!� ������ ���� ������ �� ��� ����� #��� ��(����
�������.��� �)���T� 8��"���"� C/����DJF� #��� )� ��� ���"��� �� "������1�"���� �� ������
����� ���)�����G<0<6<>��8����"�� ��"���3����:�����- <$!����������������"��������
6H&S0�C6H�#�DOF��
=����� ��"��������"1"���!�����#���������� ����������"���������������3������"���
����#���������� ���������#����������"���� �����������������"������(�������
>&U/��'���� ����"��� �������� P�JK!� ��� ���?���� �����"�� ��� ������"!� �����"� ���R<S!�
�����7�����������'�����"���>�����!�������������"���������������3���!��������"�
)� ������������������%��"���� ������"�� ���R<S���� �� ���"��� �������<�� �����!� ��
������"� ����� )� �����"�� ��� �� "��"��� �����������"�������� ������R&0G!� � ������"� )�
"��(�����&S0�����" �������"����������"��"��)������(���9>/'��
�
�
�
86
WrapperLookup
DSKB
Conceptual
Schema Manager
MKB
Query
Manager
TELEMED
WrapperLookup
Healthnet
Esquema Global
X-
WrapperLookup
DSKB
Conceptual
Schema Manager
MKB
Query
Manager
Query
Manager
TELEMED
WrapperLookup
Healthnet
Assertivas de
Correspondência
XEQ / XML
Database Info &
Esquemas
X-Entity
Dados XML
X-Entity
�
-������3���&� �'�� �� ��������3�
B�5�"�������� �������"���������,��������"�����"�!������������������������"��)��
�������"������'��"�����5�����?"������ <���������������""�T�����DQTNDQD�5�"�������
��"��������5�"������������������(�������������2�T�
�
�$��
��$�
-������3�������� �������� �������� ���������;�?����������� ������ �������;�?3�
�3� � �������*��� ����
=��"�����"�������������"��������"�������������"� �������"�������"���� �������
5�"����� ��� ���"1"���� ���� ��������"�� ������(��� "��"��� �� ����.��� �� ��������"��� ��
���"����
��� �#��"�"��� ������� �� ���"��� �������"��� <��� �#��"�"��� ���� ������"� ����� *�
������2��� �� ���"��� ��� ��������"��� �� 5�"����� >���� ����!� ��"����-��� ���
�����������-��� ������ ��������"������ #����� ������������"1"���� ������������(�� �������
"����� ������2�� #��� ������� ���� ���"�� �"��"�����"�� ����� ���"��� � �� ���"�� �� �����
�
�
�
87
����$��=�����������������"1"���!��������"�������7�����������:�#����"��������?���!���
7����������������G��������!���7����������'����������� �������������3�������"���
��#�����)����"�����������������������"���������������R60�� ���������
����� "��)��������"�� �� "�����������"���(����� � ��������"� ����������"1"����
�����������!� ������������������ �!�� 5���������� �����������#����!���"���
��"��$�� ������!��?��������������������������#V3������������"��������2�����������
�����"���������������"���
�
�
�
�
�
88
������� �)��
� �����*�����+�����, ��-���� ��
&��"��������"���� �������� ���1����������"����#�������3��������� ���������
�� ��� ��"�������� ��� ���"��� �� ��� ��"����3���� �� �"@������ <��� ��� �� ������� )�
�������"�� ����������(� ����� ��� ��#���� �� ���� �� #��� ��������"� �� ��"���� ��
���"���#�����" ���������"�������������"����������?���������"�����������"������"�����
��"���� �����������������"����������"��������#���������� ������7�����������
'�����"�� )� ��� ��������"�� �� ��� ���"��� �� ��"���� �� �� ��� #��� "��� � "���� ��
�������������������"�����#���������� ��������������"����������"��������!���������
��������"��!�������?-��������"���?-������������"�"��� ������!���7�����������'�����"��"���
������ � ��� ���%��"�� �� ����"���� �� ���������3���� #��� ������ ����� �� ��"���� ��
��#���������� ��� ������������"���������"����������
�����#���������� ����������������������������������#����������������������
������ � �0�A$� �� �� ������������ �7�A$��=��7�A!���� �� ��������"�� �� ��#������
���� ��)������"����������"������������#����������!��������������������"�����2"��� ��
�������������"�������������"����=��0�A!������)�������������������"��#����������
����� ��� ��������"��� �� ��#���� �� ���� �� � �� ��"���!� � �� ������� ������"�� #���
��������� ����� ��"��� � �2"��� �� �� ���"��� �� ��� � ��"��� �� ��#���� �� ���� ��� ��
��������� �������� ������ ���� ����#���� ��"?� �� ������ �� �������� ���� �� ������ ����
��#����������"��� �������=��7�A!���������"��� �����"������������*��������������"���
������������"� ��)����"����������2��9?����0�A!���������"��� ���������"���"��
�1��������������"����������<�����"���"�!����������������������� ����������"�����
7�A�)��������"��#������0�A��
���������"���"������#���������"�����������"��� �������7�����������'�����"��
��� ��� ���"��� �� ��"���� �� �� ���� B� ���"��� �� ��"���� �� �� ��� ��� #���" �� )� ��
5�"�����B� 5�"���� )���� ���"����� ��"���� �����������������������������"������
C01����DEF� #��� ��"?� �� ����� ���� �� ����#��� 7�A��B� 5�"���� �"���(� R60� C/�HDDF� �����
��������"� ��������B�����������������(������#���������� �����#�����������"��
�����?����� ������������=����� ���"��!��� ��#���������� �� ��������������������R-
�
�
�
89
<�"�"H�C01����DE�F�#���)�����2"��� ����������<-:�C'���MLF����R60�&�����C/����DJF��
B�������R-<�"�"H����"����!����������������� ��R60�&����!���"����������������"���
��"��������'���"�����"?�����������������"������� ��#��������"��������
��������"��������"���������
�� "���� �� ��� 7��������� �� '�����"�� )� ������2�� �����!� �1�� ������������!� ���"��
"�����!� ��� ��������� �� ������"� ��� ������"��� R60� #��� �����"� "��� �� ��������� ��
��������� �� �� ��"���� ��� R<S� �$�%!��&� ����&� ��!"��"�$� )� ��� ��"������"�� �� ���"��� ��
"��)�������"���������"��������"��"������'����R<S�)�������������"������
���R60!���� ��%!� ����"��������������"���R60!�� "������ "��(��������"��� ����������
�������� ���������R<S�"�������������������������������"��������������"!�#���� ����
�����.��!����"���������"���.����>��������!��?������������������������������"�����������
���������������������"�R<S��B������������"��� �������������"�R<S���������"��
��������� ������"�� ��� ���������� �����������"�� ��� ������"��� � ������"!� ����"������ �
������"������"�"���
�������"������������"� �������"1"���!�����#��"�"���������������"���5�"��������
������"��>��������!���"����-�����������������-�����������������"������#��������������
���"1"���� ������ ������(��� =����� ��������� ���"1"���!� ����� ��"����� �� 7��������� ��
:�#����"��������?���!���7����������������G��������!���7����������'����������� ����
���������3�������"�����#�����)����"�����������������������"���������������R60�� ��
�������
)3� � ������*���
'����������������������������"������.�����������"�����!�������������������T�
� '������ �� �� ��� 7��������� �� '�����"�� ��� ��� ���"��� �� ��"���� �� �� ���
�����������������������������������#���7�A��G�����"���"����R60������
�� ������X�
� <��������� ������������������������"��R<S$����������"����������"����������
����"������"���������������G�� ������������������"���� ���������� �������������
����������� ����������"�!�����"���� ���������"��� ����������"���<��"��)��
�����"��� #��� ������"�� ��%�� �����"��� �� ���"��� �� ��"���� �� �� ��� ��� ���
�����������������X�
�
�
�
90
� >������������"����������"1"��������������"������"���� �������������� ��
�� ������ 7��������� �� '�����"��� <���� �����"�� �����-��� ��� ��� �#��"�"���
��������������"����������C01����DEF��
)3� +�����, ��-���� ��
�������"1������#���#��������������"�����#�������"����#�����������������������
������"!�������������������"���������"����!�� �����������"��T�
� 7���� ������ �� �2���� �� �� �"���(� �� �� ������"��� =1�� ����������� ����� ��
������������������� �������������"������?�������������%��"�������������"��
������"��������X�
� G��"�� �� ���"��� ��� �����"�� W��!� ���������� ������"�� ������ ��� ����� ���
���������������������������"X��
� <������ ��""��"���� � ������"�� �� ��������� �� ����������� �� "��)�� ������ ��
����������"���������"����������"����
�
�
�
91
�� ��.�����/�� ��� ����
C������DKF�������!�U�!�'���-6����2!� �!���8�����"�!�6������������I���������"���
�����������5��&576B>�:����!�EJ�O$!�KDDK���
C���"�����QMF����"�����!�&��S���H����&���-�"���"����>"��5�� �������������"���L"��
5�"���"�����'�������������>"����G����H!�����J-JN!�JQQM��
C���"�����QQF����"�����!�&�!�/�����!� ����&����!�>��5��7���������>�����W����J�"��
��"�����<�"���'����!�KMK!�JQQQ��
C���QLF����!�&�!�U��&����I�'��!�e�� �I���"�"����!���A��&��&����������S���H�
�����������"���("���������"����"�����"����H�"�����5��&576B>�:�������'6�
������5�"����"�7��������6������"����>"$�KP�K$!�JEM-JON!�JQQL���
C����"�QNF�����"�!�9�!�������!�=�!�/����!�7�!�U������I!�'�!�6��"��!�&��6��!� �!�6����!�5�!�
�����"!������G�%!�&��������-���&H�"�������'���"���"����6��"��������5�"����"�
&��������5�� ��������������'6�&576B>�'��������6������"����>"!�&�""��!�W�!�
JQQN���
C�����QMF������!�>�!��������!���!�&����!������e���I!�G��<�������"�A����6��"������
"�>"�W����������5�� �������������&576B>�'��������6������"����>"!�OJM-OKM!�
JQQM���
C�����DEF������!�6�!�U�"���!�A�!�U����"���"����!���!�U�����!�5�!�6�����!�:��9�!���
6H��������!�9���G����H����������%��"T������"���"���"����"��"�������"�����5��
&576B>�:����!�&��"������KDDE���
C�����QLF������!�e�!�U������I!�'�!�&���!�W ���S���H�:�������"��������>H�����5�����"����
5�"���"�����5��9���������5�"�������"�5�����"����&H�"���!�L�K�E$TQQ-JED!�JQQL��
C����"����DEF�����"����!�<��G���9��� 5�����R60� ����������G�"��������
�""�T��%��������������������������J�J�"�"�����������2��"����j�"�������"����
KDDE��
C/�DEF�/�!�S�!�8���!�9����6�G��!�6�����KDDE$�&������S���H�:�������"����������A�����
���"��� ���������������"�����>������������5�� �������������"�������"��5�"���"�����
'�������������W��-����5�����"����6������"��W�56DE$!�OMJ-OMN!�&��������0��"����
=�"������'����"���&������!�JM-JQ!'�����!�'���!������"�KDDE��
�
�
�
92
C/����DJF�/����!���U� ��8��"�=�"T�������"�����"��������������G������1�"������*�
&�����B���� ��6)����>�����"� ����6��"������'�3�����'����"� �!�'��"�����
5�����?"��!��� <!�:�����- <!�/�(��!�KDDJ��
C/��QQF�/��!�'�!�7��"!���!�0�k�����!�/�!�6�����!�:�!� �I���"�"����!�e�!�A���I���!� ��
��'��!�A��R60-/���5�����"����6��"������"��65R��5�� ��������������'6�
&576B>�5�"���"�����'�������������6������"����>"!� ��������!� ���H����!�
�&�!�PQM-PQQ!�JQQQ���
C/����"���DKF�/����"���!� �!�7���������!���!�U����"���"����!���!�6H��������!�9�!�&����!�0�!���
]���H��!�5���>"��������"���������-"�-����������"����T�����������5�� �������������
"���W��>/�W��I����!�KDDK��
C/����DEF�/����!�7�!�9������!�5����:������!�9��G���B67��������6�������0������
&�������"����Y�A�������J�P��:"�����&��"����'�����"�����
�""�T��������������"��������H�������"�������������"���j�"�������"����KDDE��
C/�HQQF�/�H!�G�!� ���!�9!!�&�������-6�#����!�'��6��<2"��������6�I���0�������R60$�J�D!�
W����W ���W���'�����"�����>��������������""�T�������E�����G:�:<'-2��!�KDDE��
C'��DKF�'��!���!�'������!�>�!�7�����!�7�!�0��(�����!�6������������>"�5�"���"����
&H�"����"�������'�����"���&�������5�� �������������"���JD"��5"����'��������
>"����&H�"�����&</>�KDDK$!�KDDK��
C'""���DDF�'""���!�:�7�7����/��H!�>�U��G���B�%��"�>"����&"��T�B>67�E�D��
6�����U�����!�KDDD��
C'���QQF�'���!�&�!�'���!�&�!�>����!�<�!���"�����!� �!� �������!�&�!�G��!�0��R��-��T��
�������������������#���H���������"���"����������"��5�� ��������������N"��
5�"���"�����W����W ���W���'���������!�WWWN!�G����"�!�'�?!�JPJ-JLP!�JQQQ��
C'��������DJF�'��������!�>�!���������!�>�!�:����!�9�!�&����!�9�!���&"�������!�6���R#���HT�
��#���H������������2����5��WE'�W��I����>��"!�JP�������H�KDDJ��
C'��"��QOF�'��"��!�&�!�7���-6����!�8�!�8����!�9�!�5����!�U�!� �I���"�"����!�e�!�
�����!�9����W ���!�9��G���G&5665&� ��%��"T�5�"���"�������8�"�����������
5�����"����&��������5�� �������������JD"��6��"�������"���5�����"���� ����������
&����"H����9����5 &9$!�JQQO��
C'���MLF�'���!� � ��G���<�"�"H-:��"��������6���T�G��������������������"��5���'6�
G����"��������>"����&H�"���!�J-EL!�JQML��
�
�
�
93
C>��"���DEF�>��"���!���!�G����!�A��6�:&T���&H�"������� ����������R60������6�2����
:����"�&"������5��KQ"��5�"���"�����'�������������A��H�0����>"�/�����A0>/$!�
KDDE��
C>����DJF�>����!�>�!�8���H!����e����W���>��&��G���=������5�"���"����<�������5��
�����������'6�&576B>!�&�"�/���!�'�������!��&�!�KJ-KO!�KDDJ��
C>����IQMF�>����I!�B�6����7�������"�!�6�:�������������:���������S�������������
A����!�5�� �������������JL"���'6�'������������� �������������>"����&H�"���!�
B>&!�G�����!��]!�6H�JQQM��
C������QMF�������!�6����W��!�>��<�������"��2���"�������������"�����"�������������
5�� �������������"���5�"���"�����9���"�'���������������"�������5�"���������!�=��H!�
9��!�JQQM��
C������QQF�������!�6�!�0��H!���!���6����"���!�G���=���"��������������"���"���"�����
5�� ����������������5!�JQQQ��
C7���-6����QMF�7���-6����!�8�!� �I���"�"����!�e�!�>��S���!����:%���!�e��&���!�
9�������!�A��A�����!���9��W �����G���"��������������"�����"���T�>"�������
�����������5��9���������5�"�������"�5�����"����&H�"���!�JQQM���
C7����DKF�7����!�7�!�6�����!���!�G�����!���!����5�"����"����"��"����-R60�>"�
5�"���"����&��"�!�5�� ��������������N"��5�"���"������'�������������<2"������
>"����G��������H!� ����!�'(����:�������!�KQM-EDL!�KDDK��
C7���"DEF�5��7���"!�G��>������#!�U�-���&""���!�<��&�������T�S���H�:�������"��������U�H����
&�����������6��"���&H�"�����5�� ������"�=���N!��I��"k"��V��5�����"�I!���������"k"�
6������!�KDDE��
C7�����QLF�7�����!�7��>���5�"��������#���H�����������H���"�������"�����9�����
5�"�������"�5�����"����&H�"���!�M�E$TKDP-KEE!�JQQL��
C7��"QPF�7��"!�&����6����I!�5��&��6��"���������6"�����(��A����T� �������!�
G�����#������������"������5��5<<<�>"�<�����������/����"����JN�K$T�E-JN!�9���!�JQQP��
C7����QQF�7����!�7����6����(��!����B���G�����"�����#��������#���H����������"����
��������"���������������������5�� ��������������5'>GlQQ!��������JPOD����0='&!�EEK-
EOM!�&�������!�JQQQ��
C8���HDEF�8���H!���!�5���!�]�!�&����!�>�!���G"�����!�5���&��������"������������"�
�
�
�
94
�������"��H�"�����5�� �������������5'><!�KDDE���
C8����QMF�8����!�9�!�/������!�6�!�7���-6����!�8�!�=��"����!�&�!�A�����!�A�!���
e������!�:���G����"����������������"���"��������H�"����5�� ��������������'6�
&576B>�'���������!�JQQM��
C8��"��DDF�8��"��!�9����6�0������!�/��<�H�9��R60���"���"������"��9>B6!� �"�J��
>��������������""�T������%����������%������%�-DP-KDDD�%�-DPJN-%����"����
j�"�������"����KDDD��
C56>/DOF�5�"����"�6�����>"�����>��������������""�T���������������j�"�������"�
��KDDO��
C5���QQF�5���!�]��7�!���������!�>�!�������!�6�!�0��H!���!���W��!�>��&�������"����#���H�
�2���"�����H�"�������"���"���"�����5�� �������������"����'6�&576B>!�JQQQ���
C9����DEF�9����!�<�!�G���!�=�!�6�/����!� �!��� �����������!�����A���������"������
��"����"�������"�����"�6��"���"���"�����������I��5��G�������������"!���"�6��
��%��"!�KDDE��
C0�2DKF�0�2!�6��>/��������T���9>/'�W������ �I����>��������������
�""�T�����������%�������������������"���������"������>"���������������j�"���
����"����KDDK��
C0��(�����DKF�0��(�����!�6��>"���"���"���T���"�����"�����������"�����5��KJ"���'6�
&576B>-&57�'G-&57�:G�&H����������� �������������>"����&H�"���!� B>&�
KDDK!��6����!�W ���������!��&�!�9����KDDK��
C0��(�����DEF�0��(�����!�6�!�6%I�m�!�]�!�/������"��!�>����6������!����G�����#��������
#���H���������"���!�#���H��������!���������"�������������"����Y� �"����5�� ��%��"�
������"����"���&<W�&5<����%��"!�KDDE��
C0��HQLF�0��H!���e�!�:%���!���!���B�����!�9�9���S���H����8�"�����������5�����"����
&�������������&������>������"������5�� �������������"���KK��A0>/�'���������!JQQL��
C0��HQL�F�0��H!���e�!���:%���!���9�9�B�������S���H-����������������"��������
5�����"��������"���5�� �������������"������5�JQQL���
C0��HQQF�0��H!����e��'�����������"�������5�"������������>"���������>"�5�"���"�����
��"�������5�"����������G�H!�KOQ-KLN!�JQQQ��
C0��HDDF�0��H!����e���0����-/���G�����#�������>"�5�"���"�����5��6��I��!�9�!�0�����/���
�
�
�
95
��"�������5�"���������!�U������ ���������!�KDDD��
C01����DJF�01����!�/��������������"������6��"��� ����&��"������5�"���� ����
>����<2�����S������� ���� �����"���G������� <!�'���Y�'��"�����5�����?"����
KDDJ��
C01����DEF�01����!�/����!�6������"���<����"�������R60-/���6��"����S��������G������
>��"������'�������'�3�����'����"� ���'��"�����5�����?"��!��� <!�:�����!�
KDDE����
C01����DE�F�01����!�/����!�&���!����'�!�7�� �!�0��:�T�'�����"���6����������R60�
&�����!��5�� ����������������"��5�"���"�����W��I��������W���5�����"������>"�
6������"��W 5>6$!�JDK-JDP!�KDDE��
C6�/����DEF�6�/����!� �!� �����������!���T�>"���"���"�����H���-����"�����������
"�������"�����������5��JQ"��5�"���"�����'�������������>"�<����������!�5'><lDE�"��
����$!�6���!�KDDE��
C6��"��QEF� 6��"��!�9����&����!����������"�����"���=���&S0T���'�����"��7�����
6�����U����!�JQQE��
C6�"�DJF�6�"�!� ������������"�����������������S�������<�������"�H�������A������5��
�������������"���JK"�����"������>"����'���������!�KDDJ��
C6�������IDOF�6�������I��>��������������""�T��������������I������j�"�������"�����KDDO��
C6H�#�DOF�6H&S0��>��������������""�T������H�#��������j�"�������"����KDDO��
CB��DEF�B��!�/�!�&��!�e�!���G�!�U�-0���:��"�����"���������������-����"�
�������"��H�"�����&576B>�:����!�KE�E$!�KDDE���
C �""�����DDF� �""�����!�:�!���0��H!����e�����&������������"�����������������S�������
������A������5�� �������������KL"��5�"���"�����'�������������A��H�0����>"�
/����A0>/$!�'���!�<�H�"!KDDD��
C �I���"�"����QLF� �I���"�"����!�e�!����"�����!�&�!���7���-6����!�8��B�%��"��������
������"������"�����<�� �����B��5�"��'�����B��A��H�0����>"�/�����A0>/$!�/���H!�
5��!�JQQL��
CS��QQF�S��!�R���S���H���������5�� �������������"���JK"��5<<<�5�"���"�����'����������
���>"�<�����������5'><bQL$!ON-PP!JQQQ��
C:�����DKF�:�����!�&��9�X�=�����!� ��T���"�������5�"���������T���6��������������K��<�"���$��
�
�
�
96
���"����8��X�K����"�����>�������!�KDDK��
C&�����DKF�&�����!�6�!�/��I�!���!�S��2!�'�!�/�����I!�G�!�<�����!�'�!�9�I�!�6���<��������
>����������=���"�"����&�����"����<�"��������=�"���I��G�������&���"���W���
G�������������W��I�����R60�G����������������"���&���"���W��!�R&W �KDDK��
�C&������"�QOF�&������"�!�>�!�>�!�&�!�9����!�8��A����0��H!����e������������#�������
��"�������"���������������!�5�� �������������KK��5�"���"����'�������������A��H�
0����>"����!�EJN-EKQ!�JQQL��
CG"�����DOF�G"�����!�5����8���H!����<�������"�S���H�:�������"������� ����>"�
6������"�&H�"�����5�� �������������"���KDDO��'6�&576B>���"���"�����
��������������6������"����"��
CA��DJF�A��!�A��6�!�01����!�/�����������!����'��������������������������"���������
������H����"�������"�������2��-�������"�����5�� �������������W 55W �KDDJ�-�
5�"���"�����W��I��������5�����"����5�"���"�������"���W���-�G��������������
������"����!�:�����9�����!�/����!�E-JD!�KDDJ��
CA������DJF�A������!�G��9��G��������H���R60� �"�J�-����5�"����"����"��� 5������
R60� �����������>�������������
�""�T�����������%�������������������"���������"������2���9�G����R60���
j�"�������"����KDDE��
CW ���QPF�W ���!�9��:������� �����������>"�W�����������5�� �������������O"��5�"m��
'�������������5�����"������U��������6������"��'5U6$!�JQQP��
CWWW'DOF�W����W ���W���'�����"�����R&0�G�������"������R&0G$��WE'�
:�������"�����>��������������""�T�������E�����G:�2��"��j�"�������"����KDDO��
CWWW'DO�F�W����W ���W���'�����"�����R60� "��0�������R "�$�A�������J�D��WE'�
:�������"�����>��������������""�T�������E�����G:�2�"���"����j�"�������"����
KDDO��
C]����QPF�]����!�e�!�7���-6����!�8�!�8����!�9����W ���!�9��A����6��"����������
W����������<���������"��5�� �������������&576B>��EJL-EKM��JQQP��
C]���QLF�]���!�7!�8���!�:����U���!�:��7����"����"���"���"�������"����"�"�����
�"�����("����5��9���������5�"�������"�5�����"����&H�"���!��������L!�����K�E!�JQQ-KKJ!�
JQQL��
�
�
�
97
�
�
�
�
�
�
�
�
�
�
fffffffffffffffffffffffffffffffffffffffff�
�����T�G�����������'��"�
�
�
�
�
�
�
�
�
fffffffffffffffffffffffffffffffffffffffff�
B����"��T����'������&����
�
�
:�����!�JD���������������KDDP��