ADEMAR CÉZAR FEIL ALESSANDRO QUIROLLI MODELAGEM SEMÂNTICA Trabalho desenvolvido para a Disciplina de Banco de Dados II, do Curso de Informática da UNIOESTE – Universidade Estadual do Oeste do Paraná – Campus de Cascavel. Prof. C. José M. Olguín CASCAVEL – PARANÁ 2005 ADEMAR CÉZAR FEIL ALESSANDRO QUIROLLI MODELAGEM SEMÂNTICA Prof. C. José M. Olguín CASCAVEL – PARANÁ 2005 SUMÁRIO SEPARAÇÃO DAS ESTRUTURAS FÍSICAS E LÓGICAS.................................................................. 5 MECANISMOS DE ABSTRAÇÃO..............................................................................................5 ECONOMIA DE EXPRESSÃO...................................................................................................5 MANUTENÇÃO DA INTEGRIDADE........................................................................................... 8 FLEXIBILIDADE DE MODELAGEM...........................................................................................8 EFICIÊNCIA NA MODELAGEM............................................................................................... 8 REPRESENTAÇÃO DE OBJETOS NÃO-ESTRUTURADOS................................................................9 REPRESENTAÇÃO DE RELACIONAMENTOS............................................................................... 9 EXISTÊNCIA DE ABSTRAÇÃO COMUM.................................................................................. 10 REDE OU HIERARQUIA DE RELACIONAMENTOS......................................................................10 DERIVAÇÃO / HERANÇA....................................................................................................11 INSERÇÃO / EXCLUSÃO / MODIFICAÇÃO...............................................................................11 MODELO DE ENTIDADE-RELACIONAMENTO..................................................12 TAXIS......................................................................................................................... 13 SDM............................................................................................................................ 15 FUNCTIONAL DATA MODEL................................................................................ 16 RM/T........................................................................................................................... 17 COMPARAÇÃO ENTRE MODELOS......................................................................................... 18 ÍNDICE DE FIGURAS FIGURA 1 - GENERALIZAÇÃO................................................................................. 3 FIGURA 2 - AGREGAÇÃO...........................................................................................4 FIGURA 3 - ESQUEMA RELACIONAL DA BASE DE DADOS LIVRARIA........6 FIGURA 4 - ESQUEMA SEMÂNTICO DA BASE DE DADOS LIVRARIA.......... 7 FIGURA 5 - HIERARQUIA DE AGREGAÇÃO.......................................................11 FIGURA 6 – REDE DE RELACIONAMENTOS......................................................13 FIGURA 7 – EXEMPLO DE E-RELATION E P-RELATIONS............................. 18 ÍNDICE DE TABELAS TABELA 1 – PRINCIPAIS CONCEITOS................................................................... 2 TABELA 2 – COMPARAÇÃO ENTRE MODELOS................................................20 1 INTRODUÇÃO Os sistemas de bancos de dados tradicionais possuem um conhecimento muito limitado sobre o significado de dados no banco de dados, tais sistemas compreendem certos valores de dados atômicos simples e certos relacionamentos de muitos-para-um entre os mesmos, mas pouco mais além disto. A Modelagem Semântica foi introduzida, inicialmente, como uma ferramenta de desenho: projetava-se um modelo semântico em alto nível, que era traduzido para um modelo de dados tradicional. No início, o resultado central da modelagem semântica era o desenvolvimento de poderosos mecanismos para representar aspectos estruturais de dados comerciais. Atualmente, voltou-se a atenção para aspectos de formalismo na modelagem, influenciados pelo paradigma de Orientação a Objeto (OO) das linguagens de programação. Modelos semânticos são mais complexos que o modelo relacional e possibilita uma maior visualização dos relacionamentos entre os dados. Embora o modelo relacional provê uma metodologia de modelagem independente dos detalhes de implementação física, muitos projetistas acreditam que o modelo relacional não oferece um modelo conceitual suficientemente rico para problemas que não são mapeados em simples tabelas. Uma coleção de dados pode ser caracterizada como um modelo de dados semântico desde que forneça um conteúdo mais semântico que o modelo relacional. Segundo Date, a modelagem semântica é uma classificação apropriada para a atividade de representar o sentido e são caracterizadas por: • Identificação de um conjunto de conceitos semânticos que parecem úteis ao se falar do mundo real; • Determinação de um conjunto de objetos simbólicos (formais) correspondentes para representarem aqueles conceitos semânticos; • Determinação de um conjunto de regras de integridade ao lado dos objetos simbólicos; • Desenvolvimento de um conjunto de operadores para a manipulação daqueles objetos simbólicos. 2 CONCEITOS FUNDAMENTAIS A tabela I abaixo traz os principais conceitos da modelagem semântica, segundo Date: Conceito ENTIDADE Definição Informal Exemplos Um objeto passível de distinção Fornecedor, Peça, Pessoa PROPRIEDADE (de um tipo particular) Uma peça de informação que Número de fornecedor, ASSOCIAÇÃO descreve uma entidade Altura da pessoa Um relacionamento de muitos- Expedição (peça para-muitos (um-para-muitos fornecedor), etc.) entre entidades SUBTIPO do Gravação (composição-orquestra regente) O tipo de entidade Y é um Funcionário é um subtipo subtipo da entidade de tipo X se, de pessoa, Concerto é um e apenas se, cada Y for subtipo de Composição. necessariamente um X. Tabela 1 – Principais Conceitos MODELAGEM SEMÂNTICA E ORIENTAÇÃO A OBJETOS Existe uma analogia entre modelagem semântica e linguagens de programação de alto nível, devido ao grau de abstração utilizado. Em meados de 1970, pesquisas tentavam simplificar o projeto e uso dos bancos de dados provendo estruturas de modelagem que eram capazes de suportar a visualização dos dados pelo usuário. Na mesma época, três importantes artigos [Chen 1976; Schmid e Swenson 1975; Smith e Smith 1977] trouxeram duas grandes idéias para a modelagem de dados, sinalizando o surgimento dos modelos de dados semânticos. A primeira idéia foi a independência dos dados. Influenciada pelas linguagens de programação, a idéia é que o usuário deve ficar livre de detalhes sobre a estrutura física do banco de dados. Desta forma, o usuário pode modelar os dados de maneira similar à percepção humana da aplicação. A segunda idéia envolve a captura semântica dos dados no processo de modelagem. Tentativas foram feitas para estender esta semântica para relações de dependência ou conexões. Esta abstração utilizada, generalização e agregação, são suportadas por todos os modelos de dados semânticos. 3 Generalização é a forma que, diferenças entre objetos similares são ignoradas para formar um tipo em que a ênfase é dada às similaridades. Um exemplo disto é uma entidade chamada PUBLICAÇÃO em um banco de dados de uma livraria, onde características comuns de todas as publicações (livros, revistas, etc.) são consideradas. Na figura 1, os relacionamentos entre a entidade PUBLICAÇÃO e outras entidades especializadas são representados usando uma hierarquia onde, a generalização se dá de baixo para cima e a especialização de cima para baixo. Por exemplo, PUBLICAÇÃO pode ser considerada uma generalização de JORNAL_PAPEL, LIVRO e CONFERENCIA_PAPEL na base de dados. Similarmente, BOOK pode ser considerado uma especialização de PUBLICAÇÃO. Figura 1 - Generalização A Agregação é o relacionamento entre tipos de baixo-nível que pode ser considerado um tipo de alto-nível. O modelo relacional emprega este conceito pela agregação de atributos para formar uma relação. Modelos semânticos permitem a agregação de entidades (ou relações) para formar outras entidades. Um exemplo é a 4 agregação dos tipos TÍTULO e AUTOR para formar o tipo PUBLICAÇÃO, como ilustrado na figura 2. Figura 2 - Agregação Complementando a generalização e a agregação, muitos modelos semânticos suportam relacionamentos de classificação e associação. Classificação é uma forma de abstração em que uma coleção de objetos é considerada o nível alto da classe do objeto. Essencialmente, isto representa um relacionamento is-instance-of (é instância de). Seguindo o mesmo exemplo da base de dados anterior, um objeto da classe BEST_SELLING_BOOK consiste em todos os objetos BOOK que venderam mais que 10.000 cópias. O objeto IT é “uma instancia de” do objeto da classe BEST_SELLING_BOOK. A classificação provê um mecanismo para especificar o tipo de um objeto específico, onde a especialização envolve a derivação de um tipo através de um tipo existente. Associação é uma forma de abstração em que um relacionamento entre objetos é considerado um conjunto de objetos de alto nível [Brodie 1984]. O conjunto DATABASE_BOOKS é uma associação de objetos BOOK, assim como o conjunto AI_BOOKS. VANTAGENS DA MODELAGEM SEMÂNTICA São apresentadas abaixo algumas vantagens obtidas pela modelagem semântica quando comparada a outros modelos tradicionais. Como mencionado anteriormente, modelos de dados semânticos foram, inicialmente, introduzidos como uma ferramenta de desenho e incorporou os tipos fundamentais de relacionamentos existentes em 5 aplicações típicas de banco de dados. Como resultado, modelos e sistemas semânticos provêm as seguintes vantagens sobre modelos tradicionais. Separação das Estruturas Físicas e Lógicas Em modelos orientados à registro o acesso feito por usuários finais tendem a imitar a estrutura lógica do esquema de banco de dados. No modelo relacional um usuário deve simular ponteiros comparando identificadores de uma relação para outra (como em uma operação join). Entretanto, os atributos dos modelos semânticos podem ser usados diretamente como ponteiros. Assim, usuários devem passar através de um nível extra imposto pelo modelo relacional, fazendo com que seja mais difícil formar objetos complexos de simples objetos. Mecanismos de Abstração Modelos semânticos provêem uma variedade de mecanismos para visualizar e acessar o esquema de diferentes níveis de abstração [Hammer e McLeod 1981; King e McLeod 1985a; Smith e Smith 1977; Su 1983; Tsichritzis e Lochovsky 1982]. A primeira dimensão de abstração consiste em um nível de detalhe em que porções do esquema podem ser vistos. No nível mais abstrato, somente tipos de objetos e relacionamentos são considerados, ignorando a estrutura dos objetos. Uma visão mais detalhada inclui a estrutura dos objetos complexos, incluindo atributos e as regras entre os componentes. A segunda dimensão de abstração nos modelos semânticos é o grau de modularidade fornecido. Torna-se fácil isolar informação sobre um tipo, subtipos ou atributos. Ambas estas dimensões de abstração são muito usadas no projeto de esquemas. Uma terceira dimensão de abstração é conseguida derivando componentes do esquema que são suportados por alguns modelos semânticos e também por algumas implementações relacionais. Estes componentes permitem que usuários definam novas porções do esquema, identificando um subconjunto especifico de dados, possibilitando aumento de desempenho e uma maneira de estruturar os dados em um novo formato. Economia de Expressão Os modelos de dados semânticos são geralmente completos no sentido de que o usuário é capaz de extrair qualquer informação da base de dados facilmente. Estes modelos, no entanto, fornecem uma economia de expressão. Para realizar uma consulta, 6 por exemplo, em um modelo relacional o usuário deve estar ciente dos atributos envolvidos e da definição implícita de relacionamentos e conexões entre as entidades. Para isto, é necessário o uso de complexas operações sobre estes atributos aplicando instruções de projeção e joins para extrair a informação exata. Com o modelo semântico, operações são definidas explicitamente sobre os relacionamentos. Figura 3 - Esquema relacional da base de dados livraria 7 Figura 4 - Esquema semântico da base de dados livraria Considere um exemplo abaixo com escritores (writers) e livros (books) no banco de dados da livraria. A figura 3 representa o esquema relacional e a figura 4 a representação semântica correspondente. O objetivo envolve encontrar todos os escritores com “baixo poder aquisitivo” que tenham publicado um livro de “sucesso” por uma “grande” editora (publishing house). A quantificação para os termos “baixo poder aquisitivo”, “sucesso” e “grande” aparecem na instrução abaixo: SELECT NAME FROM WRITER WHERE WRITER.INCOME < 2000 AND WRITER.NAME = BOOK.AUTHOR AND BOOK.SALES > 50000 8 AND BOOK.PUBLISHER = PUBLISHER.NAME AND PUB_HOUSE.GROSS > 1000000 A mesma instrução pode ser expressa usando o modelo semântico e a notação de Tsichritzis e Lochovsky [1982]: SELECT NAME FROM WRITER WHERE WRITER.INCOME < 2000 AND BOOK.SALES > 50000/WROTE AND PUB_HOUSE.GROSS > 1000000/PUBLISHED Como mencionado anteriormente, no modelo semântico os relacionamentos são definidos explicitamente e a instrução fica mais compacta, não necessitando informar através da instrução ao banco de dados qual relacionamento existe entre as tabelas. Manutenção da Integridade Os modelos tradicionais forçam o usuário a manter conexões entre os objetos da base de dados ou a manter a consistência entre os objetos. Modelos semânticos fornecem mecanismos para definir a integridade e, ao mesmo tempo, permite que o usuário tenha acesso aos dados abstraindo a estrutura de baixo nível. Flexibilidade de Modelagem Os modelos de dados mais tradicionais fornecem somente uma maneira de representar os dados. Modelos de dados semânticos, através de uso de abstrações, permitem que o usuário modele e visualize os dados de vários níveis diferentes. Isto aumenta as capacidades de modelar situações do mundo real. Por exemplo, a generalização permite ter os objetos em um nível de bastante detalhe ou de forma superficial [Hull e King 1987]. Eficiência na Modelagem Em um projeto de banco de dados, o projetista não precisa implementar instruções de baixo nível. A maioria dos modelos semânticos contém operações elementares já explícitas. Seguindo a figura 4, o objeto BOOK referencia o objeto WRITER através do atributo AUTHOR. O relacionamento de referência terá operações específicas associadas a ele. 9 BASES DE COMPARAÇÃO Diversos Autores tentam classificar os modelos de banco de dados para efeito de comparação. Por exemplo, o artigo de Tsichritzis e Lochovsky [1982] classificou os modelos como tradicional, entidade-relacionamento, binário e rede semântica. Hull e King [1987] classificaram de forma diferente: um modelo construído com os componentes fundamentais da modelagem semântica é usado para comparação com outro modelo. Todo modelo semântico tem objetos (ou entidades), relacionamentos (funcional ou relacional), propriedades dinâmicas e controle de integridade. Relacionamentos podem ser caracterizados pelas abstrações que são capazes de representar e a forma que o as fazem. Propriedades dinâmicas podem ser desde simples especificações sobre operações sobre os dados ate a modelagem destas operações e transações. Assim, as seguintes características são identificadas como fundamentais para os modelos de dados semânticos. Representação de Objetos Não-Estruturados Tipos de dados não estruturados são definidos por Tsichritzis e Lochovsky [1982] como tipos primitivos que não são construídos por agregação de tipos de baixo nível. Strings, Integers e Real são exemplos de tipos de baixo nível. Tipos de dados desta natureza são suportados diretamente pelo hardware do computador. Alguns modelos desenvolvidos para aplicações específicas fornecem primitivas mais elaboradas do que às presentes na maioria das máquinas ou compiladores. Exemplos destes tipos são dados de texto, voz e imagem. Representação de Relacionamentos Relacionamentos são analisados em termos de suas apresentações ao projetista. Conceitualmente, um relacionamento aparece no modelo como um atributo, entidade, elemento independente ou função. Um relacionamento é incorporado por atributos onde um atributo de um objeto é conectado, aponta para outro, ou é derivado de outro objeto. Por exemplo, se o atributo AUTHOR do tipo BOOK é definido como um tipo WRITER (tipo entidade), então o relacionamento entre BOOK e WRITER é representado através do atributo da entidade BOOK. Um relacionamento é encarado como uma entidade se o relacionamento de dois ou mais objetos descreve um objeto diferente. Relacionamentos também podem ser 10 vistos como objetos distintos e independentes das entidades. Isto não implica que o banco de dados físico represente relacionamentos e entidades com diferentes estruturas. Por exemplo, na figura 4, os relacionamentos WROTE e PUBLISHED têm apresentações distintas, sobre as entidades WRITER e PUB_HOUSE. Neste caso o usuário do sistema verá o relacionamento como uma simples conexão entre os dois tipos, e não como uma entidade separada ou atributo. Uma representação funcional é obtida na especificação de relacionamentos entre objetos na linguagem de definição de dados. Por exemplo, a declaração DECLARE AUTHOR (BOOK) ==>> WRITER permite ao projetista definir um relacionamento entre os tipos BOOK e WRITER em que o AUTHOR de um objeto BOOK é uma função do objeto BOOK e é um objeto WRITER. Existência de Abstração Comum A principal abstração identificada na modelagem semântica é classificação, generalização, agregação e associação. Rede ou Hierarquia de Relacionamentos A modelagem semântica oferece uma forma de diagramar o esquema para melhor compreensão. A principal representação é o gráfico de generalização/especialização que representa a derivação dos tipos de objetos. Por exemplo, o modelo representado na figura 2 pode ser expandido na hierarquia de agregação da figura 5, onde PUBLICAÇÃO é uma agregação de TÍTULO e AUTOR, com AUTOR definido como uma agregação de NOME, INCOME e STIPEND. Outros modelos, como o de entidade relacionamento [Chen 1976], suportam somente redes de relacionamentos. 11 Figura 5 - Hierarquia de Agregação Derivação / Herança Existem duas maneiras como a modelagem semântica trata informações repetidas no esquema do banco de dados: conexões semânticas e derivação. Repetições em tipos de objetos individuais são tratadas criando dois diferentes tipos com conexões semânticas entre eles, limitando assim a redundância. As repetições entre tipos são tratadas com derivação. Herança na hierarquia de generalização é um meio pelo quais os atributos de um objeto mais geral são passados para um objeto mais específico. Inserção / Exclusão / Modificação Caso objetos sejam conectados em relacionamentos, a inserção, exclusão ou modificação de um objeto irá afetar os outros objetos conectados a ele. É importante que os relacionamentos do modelo sejam claramente refletidos na semântica do relacionamento para os desenvolvedores e os usuários, ou seja, os usuários devem ter uma noção clara sobre manipulação do banco de dados. 12 MODELOS DE REPRESENTAÇÃO SEMÂNTICA A seguir abordaremos uma série de representações de diversas aproximações da modelagem semântica. MODELO DE ENTIDADE-RELACIONAMENTO Uma das principais propostas da área de modelagem semântica foi definida por Chen em 1976. Segundo Chen, entidade é “uma coisa que pode ser identificada distintamente” e um relacionamento como “uma associação entre entidades” (uma-parauma ou muitas-para-uma ou muitas-para-muitas). Um relacionamento é algo que pode ser “identificado”. As entidades e os relacionamentos são representados no banco de dados por relações de entidades e relações de relacionamentos. As chaves primárias são necessárias em ambos os casos. No caso de um relacionamento a chave primária é uma combinação de chaves externas que identificam as entidades envolvidas no relacionamento. As entidades podem ser classificadas como entidades regulares e entidades fracas. Uma entidade fraca é uma entidade cuja existência depende de alguma outra entidade. Uma entidade regular é uma entidade que não é fraca, ou seja, não depende de outras entidades. As principais propriedades das entidades são: simples ou compostas, chaves, univalorada (possui valor único) ou multivalorada, básica ou derivada e em falta. Podemos utilizar para modelar o banco de dados, diagramas E/R que constituem de uma técnica para representar a estrutura lógica de um banco de dados de modo pictório. 13 Figura 6 – Rede de Relacionamentos Na figura 6, temos os elementos 1, N e M sendo a cardinalidade dos relacionamentos, onde os elementos M e N denotam muitos. Por exemplo, a entidade Review “Revisões”, depende da entidade book “livro” para existir, desta forma se um elemento de book for excluído, todas as review relativas serão excluídas. A dependência de existência e demarcada pelo quadro duplo na entidade review e colocando um comentário “E” entre as entidades. TAXIS 14 TAXIS [Borgida et al 1984, Mylopoulos et al 1980, Nixon et al 1987 e O’Brien 1983] é uma linguagem para projetos de sistemas de informação interativos, que integra a captação dos aspectos estruturais e comportamentais de uma aplicação através de mecanismos de abstração. TAXIS oferece as facilidades do gerenciamento de banco de dados relacionais, um significado para a especificação semântica de restrições de integridade e um mecanismo de tratamento de exceções, integrado numa única linguagem, através da qual os conceitos de classe, propriedade e relacionamento de generalização são providos. Com isso temos um modelo altamente estruturado, fornecendo construtores de modelagem integrados para porções do banco de dados estáticas ou dinâmicas. TAXIS e um sistema onde a hierarquia de classificação e generalização são enfatizadas e estendidas ao banco de dados. Para descrever as classes, são utilizados os seguintes grupos de categorias: • Chaves – identificar uma instância • Características – agrupam as propriedades que não se alteram • Atributos – agrupam as propriedades que se alteram Através da pré-definição de algumas classes é possível gerar novas classes especializadas. Abaixo temos um modelo de declaração para a entidade book “Livro”: DATACLASS BOOK WITH ATTRIBUTES AUTHOR: SET OF WRITER, SALES: 0...99999999; TITLE: STRING; PUBLISHER: PUB-HOUSE; BORROWER: SET OF PERSON; REVIEWERS: SET OF REVIEWER, REVIEWS: SET OF REVIEW; end BOOK; TAXIS é um modelo fortemente baseado na abstração de herança (IS-A) utilizando-a para estruturar dados e procedimentos de uma aplicação, incluindo as expressões, transações e exceções. Este modelo ainda traz uma metodologia para tratar restrições semânticas de integridade. 15 SDM SDM [Hammer and McLeod 1981] traz uma aproximação diferenciando do modelo E/R e do TAXIS, incorporando um grande número de construtores de modelagem em uma abstração simples, a classe. É uma descrição de alto nível para banco de dados baseado em semântica, formalmente estruturado. Busca permitir ao designer de banco de dados expressar o banco de dados claramente com mecanismos para mapear diretamente o conceito de design do programador. Ao contrário dos outros modelos que oferecem métodos mais primitivos onde o designer cria objetos mais complexos, SDM busca oferecer um conjunto completo de facilidades para modelagem. Classificação e associação possuem uma maior ênfase no SDM do que agregação e generalização. Um esquema SDM é uma coleção de entidades organizadas em classes e conexões entre as classes e atributos derivados. Nas classes são especificados os atributos dos membros e das classes. Existem dois tipos de conexões entre as classes, uma que representa o mecanismo de agrupamento e outro que representa o mecanismo de generalização/ especialização. Um exemplo do modelo SDM podemos visualizar nas declarações de Book “Livro” e Data_base_book “de livros banco de dados” abaixo: BOOK DESCRIPTION: ALL BOOKS WITHIN THE LIBRARY MEMBER ATTRIBUTES: TITLE VALUE CLASS: STRINGS AUTHOR VALUE CLASS: PERSON PUBLISHER VALUE CLASS: PUB-HOUSE PRICE DESCRIPTION: PRICE OF BOOK AT LIBRARY RATE VALUE CLASS: DOLLARS TOPIC VALUE CLASS: TOPICS INTEREST-INDEX VALUE CLASS: INTEGERS ACQUISITION-PRIORITY 16 VALUE CLASS: INTEGERS DERIVATION: ORDER BY DECREASING INTERESTINDEX WITHIN BOOK. IDENTIFIERS TITLE DATABASE-BOOK DESCRIPTION: ALL DATABASE BOOKS WITHIN THE LIBRARY INTERCLASS CONNECTION: SUBCLASS OF BOOK WHERE BOOK.TOPIC = ‘DATABASE’ MEMBER ATTRIBUTES: SUBTOPIC VALUE CLASS: DB-SUB-TOPICS CLASS ATTRIBUTES: TOTAL-COST VALUE CLASS: DOLLARS DERIVATION: SUM OF PRICE OVER MEMBERS OF THIS CLASS Na descrição temos Total-Cost “custo total” e Acquisition-priority “Prioridade de aquisição”, onde os valores assumidos pelos atributos podem ser computados por qualquer outra informação no esquema do banco de dados utilizando uma sofistica coleção de derivações, como estatísticas ou ordenação. FUNCTIONAL DATA MODEL O Function Data Model [Shipman 1981] foi construído em conjunto com a linguagem de definição de dados DAPLEX. O objetivo era prover um modelo e uma linguagem de definição/manipulação que fosse capaz de representar aplicativos com naturalidade e simplicidade. Neste modelo é possível definir funções para especificar agregações de atributos utilizados para formar a entidade, como no exemplo abaixo, onde o símbolo ==>> indica elementos multivalorados e a declaração Author(Book) representa a relação entre book e person: DECLARE BOOK( )==>> ENTITY DECLARE TITLE (BOOK) ==> STRING 17 DECLARE PUBLISHER (BOOK) ==> PUB-HOUSE DECLARE AUTHOR (BOOK) ==>> PERSON O modelo não traz um meio explícito para generalização e classificação, sendo necessário o usuário definir funções para obtê-las. RM/T O modelo relacional ampliado RM/T foi primeiramente definido por Codd. Uma diferença entre RM/T e o modelo entidade-relacionamento, é que o RM/T não faz distinções desnecessárias entre entidades e relacionamentos que são considerados um tipo especial de entidade. Outras diferenças observadas são que os aspectos estruturais e de integridade do modelo são mais ampliados e definidos de forma mais precisa no RM/T. O modelo inclui seus próprios operadores especiais, além dos operadores do modelo relacional básico. O seu funcionamento implica que entidades são representadas por relações E, que registram a existência das entidades e relações P que registram certas propriedades dessas entidades, e pode existir uma variedade de relacionamentos entre as entidades. O RM/T inclui uma estrutura de catálogo formal através do qual o sistema toma conhecimento dos relacionamentos (restrições de integridade) e existem vários operadores de alto nível para facilitarem a manipulação dos vários objetos RM/T (relações E, relações P, relações de catálogo, etc.). O modelo RM/T divide as entidades em: Entidades-semente (possuem existência independente), Entidades-característica (uma entidade cuja única função é de descrever uma outra entidade) e Entidade-associativa (uma entidade cuja função é representar o relacionamento de entidades). Na Figura 7 temos um exemplo de E-Relation e P-Relation de Book onde a ERelation “Relações E” representa a existência de uma entidade e as P-Relation “Relações P” que representa as propriedades da entidade Book. 18 Figura 7 – Exemplo de E-Relation e P-Relations Abaixo temos um exemplo de relacionamento entre book “livro” e writer “escritos”, onde é adicionado do termo Designation “designação” na definição da ERelation. CREATE E-RELATION BOOK DESIGNATING (AUTHOR VIA WRITER-ID); Um modelo como o RM/T pode ser útil como auxílio ao projeto de banco de dados, contudo sua complexidade ultrapassa em muito a complexidade do modelo relacional. Parte das extensões semânticas do RM/T são feitas no dicionário de dados do modelo relacional, através de relações que descrevem os inter-relacionamentos existentes junto a novos operadores. Comparação entre Modelos 19 Na tabela II, temos uma comparação entre os modelos mostrados, em relação a uma série de características, dentre elas: • Representação de Objetos Desestruturados, os modelos são classificados como limitados ou aprimorados, dependendo do grau em que os modelos aceitam tipos de dados não tradicionais. • Representação de Relacionamentos são classificados como independentes, entidades, tabelas, funções ou atributos, dependendo da maneira em que o modelo representa os relacionamentos para o usuário. Alguns modelos apresentam várias maneiras de apresentar os relacionamentos para o usuário. • Inserção e Exclusão, os modelos são classificados quanto aos métodos de inserção e exclusão que são oferecidos ao designer do banco de dados. A tabela II auxilia a visualização das principais diferenças entre os modelos. É necessário ressaltar que alguns modelos foram criados para fins específicos, tornando assim algumas características mais importantes para aquele ambiente. Desta forma, a adoção de um determinado modelo deve ser compatível com a finalidade onde o modelo será utilizado. 20 E/R Representação de Objetos Desestruturado Representação de Relacionamentos Abstração Standard Rede vs Hierarquia Derivação/herança Inserção/exclusão Semântica de Relacionamentos Modelagem Dinâmica Limitado Independente e tabelas Agregação Forte Rede Não Específico do Usuário Selecionada pelo usuário Não Forte Hierarquia Herança Específica do Usuário exeto na hierarquia IS-A Predefinida Modelagem Transacional, orientada a objeto TAXIS Limitado Entidade (Classes) Generalização Agregação Classificação SDM Limitado Independente e entidades (classes) Generalização Agregação Classificação Presença de uma hierarquia geral Elaborada e Variada Automática Definida pelo Usuário Não Funcional Limitado Funções Associação Agregação Classificação Sem suporte para ambos Funcional Específica do usuário Definida pelo Usuário Não RM/T Limitado Independente Generalização Agregação Classificação Presença de uma hierarquia geral Herança Automática e específica do usuário Predefinida Não Tabela 2 – Comparação entre Modelos 21 CONCLUSÃO A modelagem semântica traz inúmeros recursos e facilidades para projetistas de banco de dados. Sua utilização torna o esquema de dados mais legível se comparado a modelos tradicionais, pois incorpora conceitos de orientação a objeto, aplicados em linguagens de programação de alto nível. Assim, entidades e relacionamentos são vistas de forma semelhante à visualização humana dos mesmos, abstraindo diversos detalhes de implementação e trazendo ao usuário o que ele realmente necessita. Técnicas de generalização, especialização, agregação e herança, vindas do paradigma de orientação a objetos, possibilitam que a modelagem tenha uma maior segurança, facilitando a integração dos dados. 22 BIBLIOGRAFIA PECKHAM, JOAN; MARYANSKI, FRED. Semantic Data Models. ACM Computing Surveys (CSUR). Volume 20 , Issue 3 (September 1988). HULL, RICHARD; KING, ROGER. Semantic Database Modeling: Survey, Applications, and Research Issues. ACM Computing Surveys (CSUR). Volume 19 , Issue 3 (September 1987). DATE, C. J.. Introdução a Sistemas de Bancos de Dados. Tradução de Daniel Vieira. Rio de Janeiro: Elsevier, 2003. DATE, C. J.. Introdução a Sistemas de Bancos de Dados. Tradução da 4ª Edição. Rio de Janeiro: Campus, 1990.