Baixe o app para aproveitar ainda mais
Prévia do material em texto
Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 1 - Parte II (Engenharia de Banco de Dados) Engenharia de Banco de Dados 29 páginas ♦♦ IINNTTRROODDUUÇÇÃÃOO ♦♦ EETTAAPPAASS ♦♦ MMOODDEELLOOSS DDEE DDAADDOOSS ♦♦ MMOODDEELLAAGGEEMM DDEE DDAADDOOSS ♦♦ MMAAPPEEAAMMEENNTTOO ♦♦ NNOORRMMAALLIIZZAAÇÇÃÃOO ♦♦ EEVVOOLLUUÇÇÃÃOO DDOO EESSQQUUEEMMAA DDEE DDAADDOOSS ♦♦ TTEEMMAASS RREELLAACCIIOONNAADDOOSS ♦♦ MMOOTTIIVVAAÇÇÃÃOO ♦♦ CCLLAASSSSIIFFIICCAAÇÇÃÃOO ♦♦ EEVVOOLLUUÇÇÃÃOO DDEE PPRROOJJEETTOO ♦♦ EEVVOOLLUUÇÇÃÃOO DDAA FFOORRMMAA ♦♦ EEVVOOLLUUÇÇÃÃOO DDAA LLÓÓGGIICCAA ♦♦ EESSQQUUEEMMAA FFÍÍSSIICCOO ♦♦ EESSQQUUEEMMAA EEXXTTEERRNNOO ((VVIISSÃÃOO)) ♦♦ PPAADDRRÕÕEESS EE NNOORRMMAASS ♦♦ HHIISSTTÓÓRRIICCOO ♦♦ SSIISSTTEEMMAASS AABBEERRTTOOSS ♦♦ FFRROONNTTEEIIRRAASS ♦♦ BBEENNEEFFÍÍCCIIOOSS UUTTÓÓPPIICCOOSS ♦♦ OOSS PPAADDRRÕÕEESS ♦♦ OOMMGG ♦♦ OODDMMGG ♦♦ AANNSSII//XX33 ♦♦ PPCCTTEE++ ♦♦ IISSOO//SSTTEEPP ♦♦ AANNÁÁLLIISSEE GGEERRAALL “A vida é como o equilibrismo simultâneo de 5 bolas: o corpo; a mente; a alma; a família e o trabalho. Dependendo de cada pessoa, algumas destas bolas podem ser feitas de um vidro muito frágil e outras de aço.” “Desconhecido” II Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 2 - Parte II (Engenharia de Banco de Dados) 1 - INTRODUÇÃO Na informatização de um mini-mundo com a utilização de um BD, deve-se primeiramente preocupar-se com a escolha do SBGD que será utilizado. De nada servirá uma Engenharia de BD bem realizada se o gerenciador oferecer restrições inaceitáveis, como por exemplo, baixa capacidade de armazenamento. As máquinas utilizadas e a arquitetura do Sistema de Informações (Centralizada, Distribuída ou Cliente/Servidor) também são elementos de igual importância. A Engenharia de Banco de Dados (ou Projeto de Banco de Dados, como é mais conhecido) é um dos temas mais discutidos e estudados nesta área. A razão é forte, uma engenharia incorreta pode resultar em um SBD que não atende as necessidades dos seus usuários, pedindo frequentes e custosos reparos ou mesmo uma completa reengenharia. O tempo gasto em estudos e na aplicação de princípios de uma boa engenharia de BD é sempre um tempo bem empregado. A maior habilidade exigida para os especialistas em Engenharia de BD é saber recolher informações a partir da vivência com o mini-mundo, é também extrair dos usuários por meio de entrevistas e reuniões o que desejam do BD e é estruturar todas estas informações de modo a se tornarem concretamente um BD. A grande valorização deste tipo de profissional ocorre devido a dificuldade em se encontrar pessoas experientes tanto na área técnica quanto no tratamento com o usuários, que na verdade são os clientes. A grande maioria dos Bancos de Dados existentes foram projetados manualmente por especialistas que usaram seus conhecimentos e experiências no processo. Todavia, com o crescimento da complexidade dos BD’s (“Very Large Databases”) e o estabelecimento de regras bem definidas para algumas fases da Engenharia de BD, sugiram ferramentas de apoio (“Automated Design Tools”) que auxiliam nas diversas etapas do processo. Entre as vantagens podemos citar a rapidez na realização da Engenharia, uma vez que estas ferramentas oferecem um interface amigável que orienta os projetistas nas decisões mais difíceis e realiza verificações seguras dos resultados intermediários. A tecnologia dos Sistemas Especialistas (SE) em conjunto com as ferramentas CASE (“Computer-Assisted Software Engineering”) tem colaborado nesta atividade, evitando-se desperdícios de tempo, frustrações e melhorando os resultados de um processo extremamente crítico e delicado tanto para os projetistas quanto para os usuários. 2 - ETAPAS Uma boa engenharia de BD compreende resumidamente os seguintes passos: Estabelecer o Objetivo : Buscar definir o objetivo do sistema, benefícios que o sistema trará para o mini-mundo, estabelecer restrições gerais de desempenho, custos e restrições técnicas; Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 3 - Parte II (Engenharia de Banco de Dados) Organização p/ o Trabalho: Definir a(s) equipe(s) de trabalho e sua estrutura levando-se em consideração as habilidades de cada indivíduo e sua disponibilidade, recursos necessários (descrição e disponibilidades), cronograma de atividades de acordo com as disponibilidades estabelecidas. Uma equipe pode ser estruturada em : ♦ Convencional : composta pelo pessoal disponível; entre estas pessoas é designado um gerente do projeto; o trabalho é dividido entre os componentes da equipe; cada pessoa é responsável pelo seu sub-projeto e respectiva implementação; ♦ Não-Egocêntrica : Organização de estilo democrático, descentralizado; Relações e comunicações informais entre os seus componentes; A liderança não é exercida por uma determinada pessoa de forma permanente; A liderança fica com o indivíduo que tiver maior capacitação para resolver o problema em pauta; Todos os sub-projetos são examinados pelos outros projetistas; ♦ Projetista-Chefe : Pequeno número de integrantes; Comunicações centralizadas no projetista chefe; Decisões tomadas nos níveis mais elevados; O chefe tem que ser muito experiente e capacitado para a função; ♦ Hierárquica: líder de projeto dirige analistas experientes; cada um desses analistas dirige um grupo de analistas menos experientes; comunicação descentralizada nos subgrupos e centralizada nos níveis superiores; o chefe de subgrupo transmite informações para seu subgrupo (elemento de ligação com os outros subgrupos) É importante notar que as participações das pessoas em uma engenharia pode variar com o seu grau de comprometimento e conhecimento, como mostra o gráfico abaixo. É importante que exista um cronograma geral de atividades e um cronograma de cada indivíduo, que pode ser apresentado de várias formas, como mostrado abaixo. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 4 - Parte II (Engenharia de Banco de Dados) Coleta de Dados: Coletar todos os tipos de informação que são precisos armazenar. Pensar sobre os relatórios e/ou formulários que possam ser desejados. Para esta fase é necessário conhecer profundamente o mini-mundo e isto pode requerer algum tempo e a experiência (sabedoria) nesta etapa é fundamental. Não deve ser realizada por uma única pessoa, mas por um grupos de projetistas; O levantamento dos dados necessários é, basicamente, feito através da observação e das entrevistas. Por meio da observações o analista utiliza sua habilidade e sua sensibilidade na constatação de ocorrências que devam ser computadas na análise, como também Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 5 - Parte II (Engenharia de Banco de Dados) verifica a veracidade ou não dos dados fornecidos pelos entrevistados. Nas entrevistas o analista aplica os questionários, anotando as respostas obtidas para posterior análise. Técnica de entrevista : Importante fase do levantamento de dados, a entrevista é o meio utilizado para o recolhimento das informações que compõem o questionário analítico. Merece pois, que lhe seja dada especial atenção, a fim de que a mesma seja realizada segundo o adequado embasamento técnico. Escolha do entrevistado : O analista deve ter o máximo cuidado quando da escolha do elemento a ser entrevistado, de modo que a entrevista seja realizada com a pessoa mais capacitada a responder os quesitos constantes do questionário. De um modo geral, o elemento a ser inicialmente entrevistado deve ser o chefe do setor em estudo, para que posteriormente se sucedam as entrevistas com os encarregados das seções componentes do setor, caso se façam necessárias. Marcação da entrevista : Para a marcação da entrevista, o analista deve fazer uma pré- abordagem, contactando um subordinado da pessoa a entrevistar, a fim de conhecer a sua maneira de agir, sua personalidade e aprecisa posição hierárquica. A data, hora e local da entrevista devem ser de inteira conveniência do entrevistado, pois a experiência nos mostrou que uma entrevista freqüentemente interrompida por contingência do serviço, perde quase que totalmente sua finalidade inicial. Precauções do analista : Confirmar com antecedência, a validade do local e a hora anteriormente combinados. Tomar o cuidado de ser pontual ao compromisso. Tempo de duração da entrevista : O tempo de duração dependerá das características de cada entrevista. O tirocínio do analista garantirá o tempo razoável para cada uma, com o cuidado para que não se torne fatigante e que quaisquer ocorrências não venham a apressá-la. O analista não deve se furtar a efetuar o número de entrevistas que se fizer necessário ao levantamento. Apresentação : Um dos primeiros passos para uma entrevista é a apresentação do analista ao entrevistado, que deverá ser feita de preferência pelo superior imediato do entrevistado, o qual aproveitará a ocasião para explicar os objetivos da análise e as vantagens que representa para a empresa e, também, para o próprio entrevistado. Postura correta, simpatia, boa apresentação pessoal, simplicidade, etc., são qualidades essenciais ao entrevistador. Não devemos esquecer que todo homem dá uma idéia de si mesmo pelo seu porte, pelo seu olhar, pela sua apresentação, pelo seu aperto de mão. É de utilidade para o analista o uso de cartões de visita. Atitude do analista : O analista deve procurar manter uma atitude sincera, amável e atenta, pois a precisão do levantamento depende das informações do entrevistado. Deve evitar julgamentos precipitados de valores. Nunca esquecer que o objeto de análise faz parte da vida do entrevistado, que, em muitos casos, foi ele próprio quem imaginou os instrumentos e os métodos de execução. É difícil para um indivíduo que conhece seu trabalho a muito tempo admitir que alguém, que nunca o fez, possa introduzir alguma melhoria ou romper um paradigma. Deixar o entrevistado falar e tentar entendê-lo são condições básicas para o sucesso da entrevista, principalmente porque aprende mais quem sabe ouvir. Adaptar o nível de linguagem ao entrevistado torna-se fundamental, não se pode usar os mesmos termos, fazer as mesmas perguntas e ter as mesmas atitudes com um operário e com um diretor. A entrevista deve ser realizada em clima de informalidade, procurando o analista ser comedido no emprego de termos técnicos. Os bons aspectos do trabalho do entrevistado devem ser valorizados e elogiados. Segundo Maslow, classificado como uma das necessidades, o reconhecimento enriquece o ego do ser humano. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 6 - Parte II (Engenharia de Banco de Dados) Técnica de levantamento : Esta fase consiste na aplicação do questionário e obtenção dos dados para a análise quantitativa. O levantamento exige muita atenção e cuidado, pois envolve também problemas de relações humanas. Nem sempre será fácil obter as informações, sobretudo se o analista não desenvolver sua habilidade para entrevistar dentro da técnica acima apresentada. É importante ter sempre em mente que de um levantamento incorreto resultará numa análise deformada da empresa. Perguntas : As perguntas do questionário poderão ser lidas, com a maior clareza possível, ou feitas com palavras que o analista considere como mais à altura da compreensão do entrevistado. O entrevistador deve ser claro, procurando explicar o que deseja e, se necessário, repetir as perguntas de vária maneiras, até estar seguro de que as mesmas foram perfeitamente compreendidas. Anotação das respostas : As respostas deverão ser anotadas imediatamente após sua formulação pelo entrevistado. O analista deve procurar ser sucinto na redação, sem no entanto permitir que a simplificação prejudique a compreensão posterior das respostas. Pode ser conveniente, em reforço às anotações, o uso de um pequeno gravador de áudio durante a entrevista. Caso seja necessário, ao fazer a revisão das anotações, o analista deverá voltar ao entrevistado para dirimir as dúvidas que porventura surjam. As anotações devem, preferencialmente, ser feitas na própria cópia do questionário e nos espaços logo após as respectivas perguntas. Material utilizado : Durante o levantamento, o analista deve estar equipado com o seguinte material: ♦ Uma cópia do questionário a se utilizar ♦ Uma cópia dos quadros estatísticos ♦ lápis ou caneta esferográfica ♦ Prancheta para anotações ♦ Bloco para anotações complementares É obvio que muitas são as variantes, dependendo dos recursos disponíveis, pode se lançar mão do uso de gravadores, laptops (questionário e respostas em arquivos), etc. Cuidados durante o levantamento : ♦ Procurar interpretar bem a resposta antes de registrá-la. ♦ Cuidar para que o tom de voz ou o modo de fazer a pergunta não influam na resposta do entrevistado. ♦ Nas perguntas cujas respostas envolvam opiniões, procurar auxiliar na objetividade de sua expressão. ♦ Nas perguntas cujas respostas envolvam dados exatos, insistir na exatidão necessária à analise. ♦ Permitir liberdade de expressão ao entrevistado, sem contudo permitir que fuja ao assunto da entrevista. ♦ Suspender o levantamento para um coffe break ou similar (em companhia ao entrevistado) quando sentir queda do ritmo ou da qualidade do mesmo. Análise e Especificação: O grupo de projetistas deve ponderar sobre todas as informações obtidas e gerar documentos que especifiquem as necessidades dos usuários. Caso perceba-se a falta de alguma informação deve retornar a fase anterior (coleta); A análise dos dados levantados, por meio dos Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 7 - Parte II (Engenharia de Banco de Dados) questionários e da observação do analista, é a fase mais importante de todo o processo para se chegar ao diagnóstico propriamente dito. É quando o analista utiliza realmente todo o seu conhecimento e sua habilidade. Quem deve analisar : A análise deve ser realizada pela mesma pessoa que levantou os dados, pois, como dissemos acima, além das respostas dadas pelos entrevistados e anotadas, também forma feitas observações que são necessárias à análise. Na realidade a análise de determinados métodos se inicia, ou mesmo é feita totalmente, na própria fase de levantamento. Método de análise : Não se pode, evidentemente, estabelecer regras precisas para este tipo de trabalho, que vai depender da capacidade e experiência do(s) analista(s). Assim, ao passo que durante o levantamento devemos partir do geral para o particular, na fase de análise o mais correto é primeiro analisar os detalhes e daí tirar conclusões sobre o todo. Quanto à prioridade a ser estabelecida para o estudo dos detalhes, estará sujeita ao bom senso do analista, como de resto grande parte de suas decisões nesta fase de análise. Projeto Conceitual: Através de uma ferramenta conceitual (modelo de dados a nível conceitual) um grupo de especialistas repassa a especificação textual em um diagrama ou outras forma de linguagem que descreve com clareza as necessidades dos usuários, isto é chamado modelagem. O objetivo desta fase é organizar melhor as idéias passadas pela fase anterior (Análise e Especificação) e perceber alguma falta de informações e neste caso é necessário retornar; Projeto Lógico: Através de uma ferramenta lógica (modelo de dados a nível lógico) um grupo de especialistas repassa a especificação conceitual em lógica através de um diagrama ou outra linguagem, isto é chamado mapeamento. Com esta fase obtém-se a definição lógica dos arquivos de dados. Especificação lógica depende do SGBD que será utilizado pois as estruturas dos arquivos devem ser compatíveis com o gerenciador utilizado; Projeto Físico : Através de conhecimentos coletados no requisitos, com relação a freqüência e forma de utilização dos dados, estabelece-se a organizaçãomais adequada para os arquivos e os métodos de indexação mais eficientes. Tipos de Organização de Arquivos: Heap File (Serial) Sorted File (Seqüencial) Hashed File Métodos de Indexação: ISAM B Tree B* Tree B++++ Tree Trie Multilist Inverted File Double Chained Tree Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 8 - Parte II (Engenharia de Banco de Dados) Implantação: Tendo a especificação dos arquivos pode-se implanta-los, através da linguagem DDL para formarem um BD; Verificação e Validação: Os testes são realizados medindo a satisfação dos usuários em termos de velocidade e o padrão com que os dados são apresentados; Acompanhamento da Qualidade: o DBA deve permanecer atendo a mudanças de requisitos de modo a perceber alterações nas especificações anteriormente corretas; Manutenção: A insatisfação de um usuário ou mesmo modificação no mini-mundo (expansão da empresa, etc.) pode exigir pequenas alterações na estrutura do BD. Mudanças drásticas como por exemplo modificações no organograma de uma empresa podem exigir um trabalho maior na restruturação do BD (reengenharia). A similaridade do processo de Engenharia de BD com a Engenharia de Software não é coincidência. Na verdade pode-se dizer que ambas são complementares, uma vez que na Engenharia de Software é necessário a criação dos arquivos de dados (BD) e na Engenharia de BD é necessário a criação dos programas aplicativos (software) que irão operar o Banco de Dados. 3. MODELOS DE DADOS Um Modelo de Dados é um conjunto de conceitos utilizados para descrever a estrutura de um BD a nível conceitual, lógico ou físico. Os modelos apresentam um conjunto de operações para a especificação e manipulações dos dados do BD. Os tipos de modelos existentes na literatura se classificam em: A). Modelos Baseados em Registros: são modelos que fornecem conceitos de modelagem a nível lógico utilizando-se da representação de registros. Comercialmente, os modelos mais encontrados são o Rede, Hierárquico e Relacional; B). Modelo Semânticos: são modelos conceituais que apresentam uma capacidade maior de representação fiel de um problema, pela simples razão de possuir conceitos mais elaborados. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 9 - Parte II (Engenharia de Banco de Dados) Exemplos de modelos desta categoria são o Modelo Entidade-Relacionamento (MER) e o Modelo Funcional; C). Modelos Orientados a Objetos: são modelos conceituais que procuram representar e estruturar Bancos de Dados através do paradigma de “Orientação a Objetos”. Este tipo de modelo esta em grande destaque mundial (inclusive no Brasil) nas pesquisas atuais. Alguns dos modelos em pesquisa são: O2 (França); PCTE (Comunidade Européia) ;Orion (EUA) e o Modelo de Representação de Objetos - MRO (Brasil - USP/São Carlos). O reflexo das necessidades evolutivas do mercado pode ser cronologicamente visualizado através dos diversos Modelos de Dados desenvolvido, desde os Modelos Baseados em Registros passando pelos Semânticos até os recentes Modelos Orientados a Objetos, como pode ser visualizado pela figura abaixo. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 10 - Parte II (Engenharia de Banco de Dados) 4 - MODELAGEM DE DADOS Atualmente o Modelo de Dados Conceitual mais difundido e utilizado para a modelagem de dados é o MER criado por Peter Chen. O resultado da modelagem utilizando o MER é um diagrama (DER) bastante simples porém de grande utilidade. Tendo exatamente definido qual o problema ser resolvido, ou seja, tendo determinado as fronteiras que delimitam e restringem o mini-mundo a ser modelado e realizado a especificação, utiliza-se um roteiro a ser seguido para se determinar uma primeira versão do DER. Após criada a primeira versão do DER deve-se apresentar aos usuários para que sejam verificados a corretude e completude do diagrama. Sucessivas apresentação do DER devem ser realizadas enquanto foram detectados falhas na representação. À primeira vista pode-se pressupor que esta rotina de trabalho trará atrasos na construção do Banco de Dados, porém os especialistas em engenharia (software, mecânica e etc) sabem da extrema importância da fase de projeto. Erros ocorridos nesta fase acarretam graves atrasos e aumento no custo de realização do produto. Por esse motivo, o MER se tornou uma ferramenta de modelagem entre as mais difundidas, estimadas e utilizadas no mercado de informática. 5 - MAPEAMENTO O Modelo Entidade Relacionamento é responsável por realizar uma representação dos dados de uma determinada aplicação a um nível mais conceitual, um pouco distante da forma como os seus elementos serão efetivamente implementados. Os modelos de registros, dentre eles Modelo Relacional (mais usado), fornece uma representação dos dados de forma mais próxima como estes se encontrarão quando forem definidos os arquivos para o BD. A passagem do diagrama do MER para a representação do Modelo Relacional é denominado Mapeamento do MER para o Relacional e é uma das técnicas mais utilizadas por ser uma ligação entre os modelos de dados mais utilizados. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 11 - Parte II (Engenharia de Banco de Dados) Existem outros mapeamentos estabelecidos como : - MER para o Modelo Rede; e - MER para o Modelo Hierárquico, contudo não serão abordados nestas notas por serem pouco utilizados. 6 - NORMALIZAÇÃO O processo de Normalização é uma etapa complementar ao Mapeamento e consiste da aplicação de uma série de regras (Formas Normais). Estas regras irão provocar algumas modificações na especificação lógica. A Normalização permite ao projetista definir quanto da consistência é garantida pela estrutura dos arquivos e quanto deve ser responsabilidade dos aplicativos e/ou do SGBD. Deve ser realizada alguma ponderação: normalizar demais diminui a eficiência dos aplicativos e de menos abre flancos para inconsistências. 7 – EVOLUÇÃO DO ESQUEMA DE DADOS O ciclo de vida de um Sistema de Informações típico pode ser especializado para Sistemas de Bases de Dados (“Micro Life Cycle”) cujas fases teriam as seguintes denominações: Definição, Projeto Conceitual, Lógico e Físico (“Design”), Implementação, Implantação de dados e aplicativos, Teste/Validação, Operação, Monitoramento e Manutenção. Particularmente, as fases de Operação e Monitoramento são permanentes e, em respostas as suas execuções, podem necessitar da ativação da Manutenção. A Manutenção de um SBD pode envolver a troca e/ou reciclagem de qualquer de seus componentes: “hardware” (computadores e equipamentos); “software” (ambientes, aplicativos, SGBD, componentes e estruturas da BD); “peopleware” (usuários comuns, programadores e DBA’s); e até mesmo das técnicas empregadas (modelagem e linguagem). Em termos de componentes da Bases de Dados, BD Intencional (Esquema de Dados1) e BD Extensional (Instâncias), a flexibilidade para a Manutenção é determinada pela adequação de seu projeto e pela capacidade funcional de seus respectivos SGBD’s. Essa habilidade, que pode-se denominar Evolução2, é atualmente um fator diferenciador entre as BD’s existentes, e pode depender tanto do Modelo quanto de sua implementação. Para outros componentes e aspectos de um Sistema de Bases de Dados, a Evolução recebe diversas denominações e/ou variações. No entanto, no que se refere particularmente à Manutenção da Base de Dados Intencional, a denominação técnica predominante na literatura atualmente é “Evolução do Esquema de Dados”, em gradativa substituição ou incorporação de semântica com o antigo termo Reorganização. Apesar de ser um tema ha muito discutido, não existe nenhuma norma ou padrão que regularize a Evolução do Esquema de Dados como um processo de trabalho. Isso possibilita sua abrangência e desdobramento para inúmeras situações, e desta forma, as variações entre as diversas1 Esquema de Dados: repositório de conhecimento sobre as estruturas da Base de Dados. Em alguns paradigmas, o Esquema dificilmente pode ser separado do Modelo de Dados. (definição segundo RODDICK). 2 Evolução, em um sentido amplo, pode ser definida como uma habilidade ou um processo de adaptação a novas situações (internas ou externas), de modo a manter uma estabilidade relativa ou para melhorá-la, determinada e em conformidade com os requisitos relacionados ao meio (ou ambiente). Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 12 - Parte II (Engenharia de Banco de Dados) pesquisas existentes sobre este tema permite abordar a Evolução do Esquema de Dados sobre diversos enfoques. 7.1 - TEMAS RELACIONADOS 7.1.1 - TEMPO 3 O Tempo é uma parte essencial e determinante dos dados em função da constante mutação envolvendo o mundo real. Os Eventos (fatos ou acontecimentos) e dados precisam ser interpretados no contexto do Tempo; baseado neles são criadas Transações, ou operações sobre as informações do Esquema de Dados, cujos valores anteriores podem ser retidos historicamente em uma Base de Dados Temporal (BDT), de acordo com um parâmetro temporal mensurável (Tempo da Transação, Tempo Válido, Tempo Real). O controle de parâmetros temporais apresenta-se envolvido com o tema “Evolução do Esquema de Dados”. Contudo, não se deve relacioná-los em uma associação de interdependência de “serviços”, pois a representação de aspectos temporais das informações está intimamente ligada ao registro histórico de alteração de valores, que por sua vez, é uma alternativa entre os procedimentos que envolvem a Evolução do Esquema. 7.1.2 - REGRAS 4 A capacidade de expressar a Evolução, na sua forma mais simples/primitiva, pode ser encontrada em Regras para a manutenção da consistência do Esquema de Dados. Para esse fim, existem Sist. de Gerenciamento de Regras (SGBD/SGR) que controlam a disponibilidade e veracidade lógica dos dados, e que tornam a Evolução de informações uma tarefa involuntária, que não depende de avaliações ou comandos do usuário. 7.1.3 - VERSÕES 5 Versões são normalmente utilizadas para apoiar a recuperação de dados, para o controle de concorrências de curta ou longa duração utilizando-se de operações de “check-in” para gerar Versões e posteriormente “check-out” para integrá-las, ou para a realização de distribuição dinâmica da Base de Dados. Apesar dessas funções e de outras bastante consolidadas, é cada vez mais freqüente a colocação de Versões como sendo individualmente importantes, porém não necessariamente obrigatórias, em aplicações que realizam atividades relacionadas a Evolução de Esquemas. 3 Tempo pode ser definido como um parâmetro de variação continua da caractéristica de qualquer objeto, e que pode ser simbolizado por números reais ou inteiros, extraídos de uma seqüência equidistante de valores representativos da unidade de tempo escolhida. 4 Regras são formadas pelos conjuntos {Evento, Condição, Ação} e representam o “Conhecimento Procedural” que retrata a definição e forma de atuação de mecanismos internos de controle, como por exemplo, restrições de integridade. 5 Versão é uma descrição do aspecto de um objeto e que se estabelece no contexto da aplicação de modo a definir um marco delimitador do trabalho realizado ou a realizar-se. Sua utilização é bastante flexível, ou seja, sobre as Versões pode-se realizar quaisquer operações (leitura/escrita, remoção, atualização e criação) desde que definidas pelo Modelo de Versões seguido. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 13 - Parte II (Engenharia de Banco de Dados) 7.2 - MOTIVAÇÃO A Manutenção da Base de Dados, com relação ao Esquema e sempre sob a supervisão da Administração (DBA), era motivada apenas pela deterioração da performance causada pelas constantes atualizações (restruturações) do Esquema. Se não fosse evitada, esta deterioração elevava os custos de acesso às informações e consequentemente inviabilizava a utilização de uma Base de Dados. Atualmente, o reconheci- mento das necessidades de Evolução do Esquema de Dados é uma tarefa mais complexa, e dela surgem diversas questões tais como: O que deve ser alterado? Quando deve ser realizado? Como realizar? Quais os benefícios? Qual o custo desse processo? Quem será afetado? e outras interrogações que devem fazer parte da política de Manutenção do SBD. Mesmo com a complexidade desse tema, o seu elevado grau de aplicabilidade torna-o funcionalmente necessário em várias situações e por diferentes motivos, dentre os quais cita-se: • Correção do Esquema de Dados diante de problemas encontrados durante a Fase de Operação com a Base de Dados. • Adaptação do Esquema de Dados aos novos componentes e/ou circunstâncias que envolvem o Sistema de Base de Dados e seu ambiente de utilização. • Refinamento de componentes do Esquema que foram pouco detalhados durante a fase de projeto e portanto estavam semanticamente pobres. • Atualização de componentes do Esquema de modo a acompanharem as constantes modificação de requisitos dos usuários e a evolução do empreendimento. • Experimentação de novas concepções do Esquema de Dados em momentos quando buscam-se alternativas para a modelagem da Base de Dados. • Incorporação de novos elementos ao Esquema de Dados. • Integração de Bases de Dados completas na forma de: “Federated Database” (FDB) através de uma metodologia “Bottom-up” que integra várias BD para a criação da FDB ou em uma metodologia “Top-Down” para incorporação de uma BD à uma FBD existente; “SuperViews” - uma virtual integração de múltiplas BD’s; ou “MultiDatabases Systems” (MDBS) - confederação de preexistentes, autônomos e possivelmente heterogêneos SBD’s. 7.3 - CLASSIFICAÇÃO Uma classificação dos trabalhos de pesquisa sobre o tema “Evolução de Esquemas de Dados” pode ser muito útil para aqueles que se propõem a desenvolver um Modelo de Dados e/ou Deterioração da BD Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 14 - Parte II (Engenharia de Banco de Dados) um SGBD com capacidade de Manutenção da Base Intencional. Neste sentido, pode-se relacionar três linhas de trabalho para a Evolução6: • Projeto: voltada ao problema de Evolução do Esquema ao nível de técnicas de Projeto da Base de Dados e de gerência de grupos de DBA’s; • Forma (Física): voltada ao problema de Evolução do Esquema Físico e de suas conseqüências (Restruturação/Reformatação) para a Base de Dados; • Lógica: voltada ao problema de Evolução do Esquema Físico/Conceitual e do Esquema Externo (Visões do usuário). Estuda especialmente as operações de alteração do Esquema lógico, as Técnicas de Evolução de Esquemas empregadas e as Estratégias de Propagação das atualizações na BD Intencional. Em um nível Físico ou Lógico, a Administração (DBA) do Sistema de Bases de Dados pode optar por duas estratégias básicas, em um processo de Evolução do Esquema de Dados que envolve alterações reais na BD. Dependendo do grau de complexidade e abrangência, estas alterações são realizadas: - Off-line: esta estratégia interrompe todos os processos em andamento enquanto a BD está sendo reorganizada. É executada em um período de pouca requisição de dados, pois os usuários comuns têm seus pedidos de acesso negados durante o período em que as alterações na BD estão sendo realizadas; - On-line: esta estratégia mantém o SBD em operação enquanto se realiza a Evolução do Esquema. É recomendada para aqueles SBD’s que são “críticos” para seus usuários; ou para BD que envolvem grande volume de dados. A reorganização e utilização da BD são processos concorrentes, controlados de forma que o usuário comum possa ter suas requisições atendidas enquanto uma porção da BD é atualizada. 6 O interrelacionamento entre as três linhas de Evoluçãodo Esquema é bastante significativo para tratá-los separadamente. Usuário Evolução da BD Evolução "Off-line" Usuário Evolução da BD leitura escrita Evolução "On-line" Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 15 - Parte II (Engenharia de Banco de Dados) 7.4 - EVOLUÇÃO DO PROJETO Para o Projeto, a Evolução do Esquema de Dados envolve o retorno às fases de Definição e “Design”, e consequentemente implica em nova Implementação, Implantação, Teste/Validação e Operação, dependendo do grau de Manutenção realizada. Para isso, foram criadas técnicas específicas no que se refere ao SBD e outras genéricas envolvendo Sistemas de Informação como um todo. 7.4.1 - PROJETO DE SISTEMAS DE BASE DE DADOS A Evolução do Esquema de Dados pode ser tratada em técnicas que enquadram-se dentro do ciclo de vida de Sistemas de BD (“Micro Life Cycle”): • “Schema Integration”: metodologias para a divisão do processo de Projeto em diversos Esquemas de Dados que representam partes de uma aplicação. Subseqüentemente, estas partes são integradas em um Esquema unificado. • “Translation of Schemes”: metodologias para a “tradução” do Esquema representado em um “Modelo de Dados origem” para um “Modelo de Dados destino”, utilizando-se da representação do Esquema de Dados em um Modelo de Dados “intermediário” com grande capacidade de abstração. • “Schema Reuse” : metodologias de representação, armazenamento e reutilização de componentes de um Esquema de Dados. A Reutilização de componentes de um Esquema exige cooperação entre os projetista, padronização de conceitos e terminologias, além obviamente de uma “biblioteca” para o armazenamento dos componentes reutilizáveis. Apesar destas e de outras dificuldades, o objetivo a ser atingido é o incremento da produtividade e qualidade de desenvolvimento e mesmo de manutenção. 7.4.2 - PROJETO DE SISTEMAS DE INFORMAÇÃO Em um contexto mais amplo, a Evolução do Esquema de Dados pode ser enquadrada em técnicas de engenharia e/ou de desenvolvimento de um Sistemas de Informação (“Macro Life Cicle”): • “Reverse Engineering”: metodologias para o reconhecimento e representação dos aspectos estruturais, funcionais e comportamentais de um Sistema de Informações já implantado. • “Reengineering”: metodologias para a conversão de Sistemas de Informação apoiados em ambientes ultrapassados/obsoletas para tecnologias mais modernas. Especificamente em Engenharia de Sistemas, a Reengenharia introduz técnicas para o reestudo e conversão de sistemas ultrapassados para novas realidades e o conseqüente reprojeto de Bases de Dados.A Reengenharia pode ser composta por três fases: Engenharia Reversa, Delta (∆) e Engenharia Avante. A Engenharia Reversa realiza um definição abstrata e clara de representação do Sistema. Na fase Delta estabelece- se as modificações no Sistema, que pode incorporar novas funcionalidades (∆ positivo) ou pode reduzi-las (∆ negativo), e exigir uma completa ou parcial implementação. A terceira e última fase, Engenharia Avante, refere-se ao desenvolvimento normal do Sistema seguindo-se as etapas naturais. • “Concurrent Engineering” : metodologias criadas inicialmente para as áreas de engenharia convencionais (mecânica e elétrica) e que estabelecem o desenvolvimento simultâneo de um “produto” através da cooperação de grupos de projetistas trabalhando separadamente porém em constante comunicação e troca de informações. A Engenharia Concorrente adapta-se Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 16 - Parte II (Engenharia de Banco de Dados) consideravelmente ao processo de engenharia de Sistemas de Informação grande e complexos, mas para isso devem existir sistemas de apoio ao trabalho cooperativo entre os grupos de projeto, denominados “Groupware”, que são abordados na área de CSCW (“Computer Support Cooperative Work”). 7.5 - EVOLUÇÃO DA FORMA Alterações dos requisitos de desempenho, mudanças no Modelo de Dados, no SGBD ou na arquitetura do SBD (ex. distribuição), por exemplo, podem provocar profundas reformas na BD como um todo. Estas reformas iniciam-se no contexto organizacional do empreendimento e podem atingir vários processos e sistemas. Particularmente em SBD’s, a Administração (DBA) fica obrigada a um criterioso processo de Restruturação da composição física da BD (ou Reformatação de seus arquivos de dados). 7.6 - EVOLUÇÃO DA LÓGICA A Evolução, em um nível lógico, pode ocorrer sobre o Esquema Físico/Conceitual ou sobre o Esquema Externo (Visões) em dois níveis de granularidade: • Domínios/Tipos: são alterações de tamanho, de valores ou de nomes dos Domínios/Tipos de Atributos e apesar de representarem modificações muito simples em termos de modelagem, podem refletir em violações de restrições semânticas nas Instâncias, caso não sejam fortemente controladas. • Conjuntos (Relações e Classes): são modificações mais complexas nas definições dos conjuntos e que incluem alterações estruturais, funcionais e comportamentais nos Esquemas de Dados. 7.6.1 - ESQUEMA FÍSICO A Evolução do Esquema Físico/Conceitual envolve operadores e operações críticas sobre aspectos estruturais e comportamentais dos elementos do Esquema que podem implicar em alterações das Instâncias (Evolução de Instâncias7) envolvidas e modificações nos programas aplicativos que utilizam estas Instâncias (Adaptação dos Aplicativos). Essa estreita relação entre Instância e Esquema, e mesmo a associação lógica entre os elementos alterados e inalterados de um Esquema gera a necessidade de Técnicas de Evolução de Esquema e de Estratégias de Propagação nas Instâncias. Cada Modelo de Dados define os elementos existentes em seu Esquema, uma taxonomia de operações de alterações de Esquemas e as regras semânticas para a execução das ações evolutivas que geram um “novo” Esquema. Toda ação de alteração do Esquema deve passar por filtros de integridade, nos quais a consistência do “novo” Esquema é verificada com base nas invariantes do Modelo de Dados, ou seja, em um conjunto de condições, restrições e/ou recomendações para cada uma das operações de alteração permitidas. 7 A Evolução de Instâncias em uma BD não é fundamentalmente motivada pela Evolução do Esquema desta BD, ou seja, mesmo não havendo alterações no Esquema de Dados pode ser necessária modificações em Instâncias, por exemplo, migrar um Objeto para uma outra Classe ou especializar um Objeto. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 17 - Parte II (Engenharia de Banco de Dados) 7.6.1.1 - TÉCNICAS DE EVOLUÇÃO DE ESQUEMA As Técnicas de Evolução de Esquema não possuem denominações usuais, mesmo porque não foram classificadas. A “operação básica”, nas quais as técnicas fundamentam-se, pode ser usada como critério para uma classificação, mas nenhuma dessas técnicas é detalhada ao ponto ter sua aplicabilidade diminuída. Deste modo, todas são capacitadas para o uso nas mais diferentes aplicações, mesmo porque cada técnica foi aprimorada ou estendida buscando uma compreensão genérica dos problemas. - “CREATING/MODIFICATION” Esta técnica se baseia na modificação do Esquema de Dados em uso. Para isso, é criado um “novo” Esquema utilizando-se ou não uma cópia do Esquema já implantado. As modificações no “novo” Esquema devem ser de pequena grandeza, ou seja, poucas e pequenas alterações em relação ao Esquema implantado, mesmo que tenham grande influência sobre as Instâncias. Normalmente, as modificações do Esquema comportam operações simples (ex. “create”, “delete” e “change”) descritas em comandos contidos na DDL (“Data Definition Language) e geralmente, o Esquema de Dados “abandonado” é eliminado da BD, contudo, opcionalmente, permite-se mantê-lo armazenado somente para revisões, dependendo do Modelo de Dados utilizado e do suporte às “antigas” instâncias. - “ADDITIONAL” Esta técnica de Evolução do Esquema temcomo característica a adição de novos elementos ao Esquema de Dados implantado, ou seja, a motivação desta técnica é acrescentar uma quantidade significativa de novos componentes de representação ao Esquema de Dados. A adição de uma grande quantidade de componentes ao Esquema de Dados caracteriza sua extensão para novos contextos de representação do empreendimento. Aliada a uma abordagem própria para a realização do Projeto da Base de Dados, esta técnica pode oferecer meios para a adição de sub-esquemas (ex. Esquemas Suplementares) ou mesmo de incorporação gradativa do Esquema de Dados em relação às Instâncias que já encontram- se armazenadas na Base de Dados (ex. “approach bottom-up”, “Incomplete Information”). Para isso, requerem-se controles especiais que permitam a adição de novos elementos ao Esquema e que não comprometam nenhum aspecto do processo de manipulação de Instâncias. - “SCHEMA VERSIONING” Esta técnica propõe a criação de Versões do Esquema como uma forma de realizar sua Evolução. Sua implantação no SGBD deve permitir uma navegação retroativa ou proativa entre as Versões tanto para a realização de operações lógicas quanto físicas nas Versões. Dependendo da implementação e Modelo de Dados, as Versões “antigas” do Esquema de Dados podem ficar inativas indefinida ou momentaneamente, ou podem ter iguais condições de uso, ou seja, a instanciação pode ser realizada em qualquer Versão do Esquema, e neste caso, passa a existir o conceito de Esquema Corrente (ou Esquema Ativo, formado pelas Versões de Esquema requisitadas) com as Instâncias sendo reconhecidas pelo SGBD somente quando sua definição está no Esquema em uso corrente. As Versões podem ser realizadas sobre todo o Esquema de Dados ou sobre uma parte (ex. definição de algumas classes), dependendo do grau de Evolução que sofrerá o Esquema em uso, da granularidade do Modelo de Versões seguido e da implementação (Sistema de Gerenciamento de Versões - SGBD/SGV). Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 18 - Parte II (Engenharia de Banco de Dados) Um controle rigoroso deve ser implementado no gerenciamento do Esquema, que permita a criação de Versões coerentes com a taxonomia de operações de alterações do Esquema em relação ao Modelo de Dados. Sendo, talvez, um processo de longa duração e de grande complexidade, pode-se optar pela criação simultânea de Alternativas para uma Versão do Esquema, ou seja, o desenvolvimento paralelo de possíveis Versões do Esquema de Dados. Ao final do processo de criação, as Alternativas são confrontadas para a escolha daquela que melhor representa o empreendimento em sua nova concepção e que se tornará uma Versão do Esquema. As Alternativas podem passar também por uma operação de “conversational merging”, onde busca-se aglutinar as melhores soluções ou inovações apresentadas em cada Alternativa para formar uma Versão do Esquema. 7.6.1.2 - ESTRATÉGIAS DE PROPAGAÇÃO NAS INSTÂNCIAS Na literatura científica, pode-se encontrar classificações aparentemente estabelecidas para as Estratégias de Propagação, que descrevem basicamente a abordagem usada para repassar o “novo” Esquema de Dados para a BD Extensional. Pode-se encontrar também muitas variações dessas estratégias para adaptá-las a problemas específicos. No entanto, essas estratégias atualmente enquadram-se em categorias descritas a seguir. - “COPYING” A Cópia apresenta uma abordagem simples porém muito utilizada nos SGBD’s. Nela, após o estabelecimento de um “novo” Esquema, realiza-se de uma única vez a transposição imediata das Instâncias envolvidas na Evolução, ou então, realiza-se a transposição incremental de subconjuntos das Instâncias envolvidas até que todas tenham sido alteradas. A transposição das Instâncias envolvidas é realizada através da criação de cópias8 de seus dados para a nova situação (do Esquema em uso para o “novo” Esquema). A desvantagem desta abordagem se estabelece no tempo consumido para a concretização das cópias de acordo com o “novo” Esquema de Dados, o que pode depender da implementação desenvolvida pela Administração (DBA). - “UPDATING” Nesta estratégia, a passagem para um “novo” Esquema de Dados ocorre pela Conversão de suas Instâncias. Quando a conversão das Instâncias envolvidas é realizada imediatamente após a criação do “novo” Esquema de Dados, a estratégia recebe a denominação de Conversão Imediata (“Immediate update” ou “eager update”). A desvantagem da Conversão Imediata apresenta-se no tempo consumido para a concretização de todas as conversões em uma única vez, de acordo com o “novo” Esquema de Dados. Outra opção consiste em converter as Instâncias durante sua manipulação, através da Conversão Incremental (“Delayed update” ou “Lazy update”). A cada informação acessada pelo SGBD, é reconhecido seu Esquema de Dados e verificada a existência de alguma indicação de Evolução; caso alguma seja encontrada, o SGBD realiza a conversão da porção acessada da informação para o “novo” Esquema. 8 A Cópia original de Instância ou Esquema é operacionalmente restritiva em sua utilização, ou seja, sobre a origem de uma Cópia pode-se apenas realizar consultas em apoio a operações mais complexas de Evolução. Por outro lado, a Cópia resultante terá as restrições de operação originalmente atribuídas ao elemento copiado. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 19 - Parte II (Engenharia de Banco de Dados) A desvantagem desta abordagem se estabelece na velocidade de execução das requisições dos dados que não encontram-se convertidos, ou seja, para os pedidos de manipulação de dados ainda não convertidos, ocorrerá um certo atraso na apresentação, pois o SGBD deverá realizar a conversão para o “novo” Esquema antes de retornar uma resposta. - “SCREENING” Mapeamento (ou “Screening”) consiste em prorrogar indefinidamente (“deferred-update”) a atualização das Instâncias mesmo após o “novo” Esquema ser criado, ou seja, nenhuma alteração física é realizada nas informações instanciadas até que a reorganização da Base de Dados seja exigida explicitamente por um usuário qualificado. A cada informação acessada pelo SGBD, é reconhecido seu Esquema de Dados e verificada a existência de alguma indicação de Evolução. Caso alguma seja encontrada, o SGBD realiza a adaptação lógica da informação segundo o “novo” Esquema, que age como um “filtro” para criar a ilusão de Instâncias modificadas. Esta estratégia compromete a velocidade de execução de qualquer operação de manipulação de dados, uma vez que as informações apresentadas aos usuários devem ser transformadas de acordo com o “novo” Esquema (filtro). - “VERSIONING” Nesta estratégia, um “novo” Esquema de Dados, ao ser instanciado, leva à criação de Versões das Instâncias atingidas, de acordo com a granularidade imposta pelo Modelo de Versões. Dependendo também da implementação, as Versões de Instâncias podem ter diferentes graus de flexibilidade para a manipulação, ou podem ter iguais condições de uso. As Versões de Instâncias podem ser criadas gradativamente pelo usuário, desde que monitoradas pelo SGBD, ou podem ser geradas automaticamente pela cópia/conversão, imediata ou incremental, de uma Versão de Instância para outra, desde que seja utilizado o Esquema de Dados correspondente. Esta abordagem não apresenta desvantagem significativa, apenas requer um nível maior de controle das Instâncias, normalmente realizado por um Sistema de Controle de Versões, que normalize as atividades de criação, manipulação e consulta das Versões de Instâncias que podem habitar simultaneamente a Base de Dados. - “MATERIALIZING” O objetivo desta estratégia não é atingir as instâncias já existentes através de operações de cópia, atualização, conversão lógica ou criação de Versões, mas sim realizar novas instanciações (“materialização de Instâncias”) de acordo com o “novo” Esquema de Dados. AsInstâncias já existentes e seu Esquema de Dados permanecem inalterados e possivelmente utilizáveis por qualquer usuário qualificado. Particularmente, esta estratégia não requer controles especiais e não compromete nenhum aspecto do processo de manipulação de Instâncias, porem exige do SGBD a capacidade de reconhecer o Esquema de Dados de cada Instância dos dados armazenados e a flexibilidade para a “Materialização das Instâncias” em momentos propícios para os usuários. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 20 - Parte II (Engenharia de Banco de Dados) 7.6.1.3 - TÉCNICAS DE EVOLUÇÃO VERSUS ESTRATÉGIAS DE PROPAGAÇÃO As Técnicas de Evolução do Esquema de Dados (“Creating/Modification”, Additional” e “Schema Versioning”) podem conviver em um mesmo sistema, isto porque, são complementares em alguns aspectos de aplicabilidade, tornando-se útil ao DBA nas diversas situações evolutivas. As Estratégias de Propagação apresentam algum tipo de deficiência e comprometimento da velocidade de execução das operações de manipulação de Instâncias quando é efetivada a propagação da Evolução para a Base de Dados Intencional. Por este motivo, uma SGBD não deve apoiar-se exclusivamente em uma única estratégia. A Tabela abaixo mostra as possibilidades e impossibilidades de composição entre as Técnicas de Evolução de Esquema e as Estratégias de Propagação em Instâncias. Não existe um estudo prático sobre estas composições, mesmo porque nunca foram explicitamente apresentadas desta forma. Confronto entre Técnicas de Evolução de Esquema e Estratégias de Propagação em Instâncias As situações não permitidas devido aos princípios que regem as Técnicas de Evolução e as Estratégias de Propagação são: • A - A Técnica de “Creating/Modification” parte do princípio que existirá apenas um único Esquema de Dados (“novo”) e considera o Esquema de Dados que está sendo substituído como um elemento de apoio para cópia, conversão ou mapeamento e portanto, não existe a possibilidade ou necessidade de existirem Versões de Instâncias para o Esquema modificado. • B, C, D - A Técnica “Additional” pratica a adição de “novos” componente ao Esquema de Dados, e portanto não enquadra-se nas Estratégias de “Copying”, “Updating” e “Vesioning” pelo fato destas estratégias realizarem a intermediação entre dois estados de cada um dos componente focalizados na Evolução do Esquema • E - A Técnica de “Schema Versioning” propõe a existência de Versões do Esquema de Dados em iguais condições de utilização, e portanto não pode-se simplesmente realizar a Cópia das Instâncias de uma Versão para outra, o que restringiria a utilização das Instâncias copiadas. O conteúdo sintático e semântico das composições permitidas entre as Técnicas de Evolução e as Estratégias de Propagação pode sofrer variações, mesmo porque, alguns Modelos de Dados incorporam várias destas composições buscando flexibilizar a Manutenção da Base de Dados. As composições possíveis são: • 1 - Partindo-se do “novo” Esquema, criado e modificado com base no Esquema original, realiza-se a cópia das Instâncias para a nova situação. Copying Updating Screening Versioning Materializing Creating/Modification 1 2 3 A 4 Additional B C 5 D 6 Schema Versioning E 7 8 9 10 Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 21 - Parte II (Engenharia de Banco de Dados) • 2 - O Esquema criado é utilizado para a atualização (imediata ou incremental) das Instâncias de um estado para outro na seqüência Evolutiva. • 3 - O Esquema original da operação de cópia pode ser mantido na BD para uma possível navegação retroativa (além do mapeamento), desde restrita apenas à consulta. O SGBD sustenta o armazenamento das Instâncias vinculadas ao Esquema de Dados, mantendo os vínculos entre as Instâncias e os Esquemas ativo e inativo para torná-las operacionais segundo os desejos de consulta dos usuários com privilégios de acesso. • 4 - Alguns poucos componentes podem ser alterados ou acrescentados ao “novo” Esquema e neles realiza-se a instanciação. • 5 - Certos componentes adicionados ao Esquema de Dados não podem ser visualizados logicamente pelos usuários, o que caracteriza a estratégia de “Screening”. • 6 - A adição de novos elementos ao Esquema de Dados deve provocar a instanciação destes elementos. Assim, as Instâncias que já existem podem não ser atingidas e outras podem sofrer o acréscimo de algumas informações (relacionamentos, atributos e até classes). • 7 - Mantêm-se as Versões do Esquema e seus procedimentos de conversão para que se realizem todas as alterações. No caso do Modelo de Dados incluir também os procedimentos de restauração, tem-se caracterizado uma Conversão “Direcionada”, em que operações “update/backdate” são realizadas de acordo com a demanda de manipulação, utilizando-se Versões de Esquema escolhidas pelo usuário. • 8 - Os procedimentos de conversão são mantidos inoperantes até que opte-se pela Reorganização. Pode-se manter a Reorganização indefinidamente e possibilitar que os usuários tenham diferentes “visões” das Instâncias, uma vez que são mantidas as interelações (ou mapeamento) entre as Versões do Esquema. Desta forma, cada informação terá um Esquema real (físico) e poderá adaptar-se a diversas Versões de Esquema (lógico). • 9 - As Versões de Instâncias são criadas de acordo com as Versões de Esquema de Dados, ou seja, no momento em que é estabelecida uma Versão consistente de um “novo” Esquema, pode- se iniciar o processo de criação automática (imediata ou incremental) de Versões das Instâncias atingidas pela nova Versão de Esquema. Tanto para as Versões de Esquema que possam existir, quanto para suas respectivas Versões de Instâncias, deve existir meios para flexibilizar seu uso e navegabilidade. • 10 - As Versões de Instâncias são criadas gradativamente pelo usuário de acordo com as Versões de Esquema de Dados. 7.6.2 - ESQUEMA EXTERNO (VISÃO) As Visões estabelecem uma independência lógica de dados, de modo que, Evolução no Esquema Lógico pode não afetar as Visões definidas e vice-versa. No entanto, quando constatada a necessidade de Evolução das Visões, requerem-se estudos de redefinição de suas definições (por seleção, projeção, junção) e suas implantações dinamicamente em momento apropriados estabelecidos pela Administração (DBA). Um conjunto de Visões pode simular um Esquema de Dados reorganizado, preservando ou reduzindo sua capacidade de representação. Infelizmente, o aumento da capacidade de Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 22 - Parte II (Engenharia de Banco de Dados) representação não é possível sem um processo mínimo de Evolução Lógica do Esquema de Dados e de uma Estratégia de Propagação. 8 – PADRÕES E NORMAS Em todas as áreas tecnológicas encontram-se tópicos de grande interesse e destes se originam diversas linhas de pesquisa cujas intenções são normalmente enriquecedoras. Todavia, essa busca por inovações traz à discussão as propostas que se apresentam e consequentemente muitos conflitos, ambigüidades e indefinições são gerados tanto em um contexto nacional quanto internacional. Os Padrões surgiram para agrupar, harmonizar e conciliar pesquisadores e empresas com objetivos e idéias (ou ideais) em comum, criando-se meios para tornar viável, aceitável, acessível e consolidado todas as novas tecnologias, e deste modo formar uma base de suporte técnico que assegure seu domínio público. Pelas inúmeras áreas, sub-áreas ou especialidades que são abrangidas nos diversos Órgãos de Padrões formais e legislativos, alguns citados na tabela 1, e mesmo pela existência de sobreposições e simultaneidade entre os trabalhos realizados, há necessidade de uma classificação e mapeamento dos Padrões que possibilite a coexistência vinculada de suas contribuições. Há também muitos consórcios, associações e grupos de indústrias que promovem Padrões de consenso, alguns dos quaiscontrolam a tecnologia por eles criada e a utilizam em benefício próprio (exemplo: “SQL Access Group” - SAG), outros consórcios, no entanto, qualificam-se apenas como usuários de uma tecnologia controlada exclusivamente por uma empresa (exemplo: “Open Database Connectivity” da Microsoft). Particularmente, a informática têm despertado um crescente interesse dos Órgãos de Padronização e de muitos grupos de empresas nos últimos anos. Motivados pela necessidades comerciais, essas associações têm abordado diversos escopos que abrangem desde “Hardware” (em geral), Redes, Linguagens de Dados, Aplicativos Específicos (CAD, CAE, CASE) e Sistemas de Bases de Dados. Para efeito de estudo, são citados nesse trabalho alguns Padrões (ODMG, OMG e ANSI/X3) preocupados com os problemas das Bases de Dados e suas respectivas linguagens, e outros especificamente direcionados a áreas correlacionadas como é o caso do ISO/STEP voltado a sistemas CAD e PCTE+ para sistemas CASE. 8.1 - HISTÓRICO Nos primordios do processamento de informações, todas as plataforma eram proprietárias. Arquiteturas de hardware, sistemas operacionais, linguagens de programação e gerenciadores de Sigla Nome Escopo ANSI American National Standards Institute Padrões em geral dos EUA. CCITT International Telegraph and Telephone Consultative Committee Padrões de Telecomunicações e Redes. IEEE Institute of Electrical and Electronic Engineers Padrões de Engenharia Elêtrica, Rede e Software. ISO International Standards Organization Padrões de Redes, Linguagens de Programação e dados. NIST U.S. National Institute of Standards an Technology Padrões do governo dos EUA. Órgãos de Padronização Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 23 - Parte II (Engenharia de Banco de Dados) arquivos, todos eram sui generis e fornecidos por fabricantes de hardware. Uma vez que uma organização tivesse desenvolvido seus aplicativos críticos em uma determinada plataforma, era extremamente difícil mudar de fornecedor, por causa dos custos e da complexidade associados à reimplantação da base de aplicativos. Além disso, os funcionários altamente qualificados, como programadores e analistas, relutavam em abandonar as ferramentas conhecidas, para aprender novas linguagens e interfaces. Nesse ambiente, as força-motriz para a elaboração das normas era a portabilidade dos aplicativos e culturas. As normas sobre linguagens de programação, como o Cobol e SQL, atenuavam o sofrimento causado pela transferência de aplicativos e pessoal qualificado entre um ambiente proprietário e outro. Ajudavam a preservar os investimentos das empresas em aplicativos e em funcionários técnicos e operacionais. As normas iniciais representavam os primeiros passos em direção ao rompimento das amarras dos ambientes totalmente proprietários. Embora a maioria das empresas se contentasse em confiar numa única fonte para atender a todas as suas necessidades de processamento de informações, as normas conferiam um certo grau de credibilidade às ameaças (raramente cumpridas) de optar por outro fornecedor. 8.2 - SISTEMAS ABERTOS Com o advento dos sistemas cliente/servidor e dos sistemas abertos, o principal enfoque das normas deslocou-se para a interoperabilidade. De fato, os sistemas abertos e ambientes cliente/servidor heterogêneos exigiam interfaces padronizadas. Não se tratava mais de procurar normas porque eram simpáticas; nesse mundo novo de hardwares e softwares intercambiáveis, eram um imperativo tecnológico. As forças econômicas e mercadológicas obrigaram muitos diretores de informática, embora relutantes, a deixar o útero do mainframe para adentrar um mundo de múltiplos fornecedores. Nesse novo ambiente, as normas eram vistas como uma fonte de conforto que antes fora dado pelo fornecedor do mainframe e de todos os sistemas que o acompanhavam. De fato, as normas preenchiam algumas necessidades dessas empresas. Tendo se curvado às forças econômicas e operacionais que justificam o uso de sistemas cliente/servidor, muitas empresas estão comprometidas com a manutenção de sistemas abertos. Não querem mais regredir à situação em que todos os seus produtos e serviços de informática vinham de uma única fonte. Ademais, sabem muito bem que mesmo que estivessem dispostas a se comprometer com um único fornecedor agora, as atividades futuras das empresas provavelmente exigiriam de qualquer maneira o suporte a um ambiente heterogêneo. Essa aplicação inevitável do escopo e das fronteiras tecnológicas dos sistemas de informação das empresas é uma das características da próxima fase da informática. Desse modo, as normas devem ser vistas como um piso sobre o qual se constroem sistemas abertos e não como um teto que limita a criação de novos recursos que se tornam necessários. Finalmente, os aplicativos futuros certamente irão se estender para além da empresa, acessando os dados dos clientes e fornecedores e sendo acessado por estes, além de terceiros cujas opções tecnológicas não poderão ser controladas. Portanto, a equação da próxima década é : Normas = portabilidade + interoperabilidade + base de inovação. 8.3 - FRONTEIRAS Um Sistema Aberto é implementado com componentes que aderem a padrões específicos. A implicação é que esses componentes podem ser comprados de vários fornecedores independentes, Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 24 - Parte II (Engenharia de Banco de Dados) reduzindo portanto, a dependência da empresa para com um vendedor em particular. Da mesma forma, assume-se que os clientes suportam estes padrões requerendo-os como parte de suas compras de tecnologia de informações. Portanto, a dinâmica de mercado deve moldar a indústria em uma direção que persiga bons padrões. Os padrões podem ser de dois tipos: de jure e de facto. Um padrão de jure é aquele que é publicamente reconhecido por um órgão governamental como o ANSI ou ISO. Cada país têm o seu órgão governamental, como o ANSI para os Estados Unidos. Cada um destes órgãos nacionais é então representado pela ISO, que define padrões mundiais. Um padrão de facto é aquele publicado por um líder de vendas, para o qual os clientes e vendedores acabam aderindo. No passado, a IBM foi responsável por muitos padrões de facto, alguns dos quais evoluíram para padrões de jure. Na indústria de hoje, nenhum órgão particular é capaz de estabelecer qualquer padrão significante baseando-se em sua fatia de mercado. Consórcios industriais de vendedores e consumidores assumiram o direito de desenvolver padrões de fato de várias espécies. Um padrão aberto se estabelece quando todos os vendedores possuem oportunidades iguais para desenvolver produtos e mercados. Mesmo com padrões de jure, vendedores que contribuem ativamente para o processo de padronização terão sempre vantagens sobre outros vendedores. Como os padrões de facto, a situação é mais complexa. Já que estes padrões são desenvolvidos por um ou mais vendedores, a abertura dos padrões de facto é altamente dependente de outros fatores, como, por exemplo, uma documentação adequada, taxas de licença e controle de arquiteturas. O outro extremo de um padrão aberto é o padrão proprietário, sobre o qual apenas um vendedor é capaz de desenvolver e comercializar produtos. Mantendo segredos comerciais, patentes e copyrighys, o vendedor pode impedir a competição de outros no mesmo nicho de mercado. 8.4 - BENEFÍCIOS UTÓPICOS Na situação ideal, uma padronização ou normatização de componentes gera benefícios que vão desde a portabilidade de aplicações e interoperabilidade de sistemas até a escalabilidade, a estabilidade e o preço competitivo. A portabilidade possibilita o translado de um aplicativo de uma plataforma para outra com o mínimo de esforço, enquanto a interoperabilidade acrescenta ao sistema a habilidade de operar com outros, através do compartilhamento de dados comuns ou da solicitações de processos comuns que basicamente são definidospor protocolos (comandos e argumentos) que fluem de um sistemas a outro. A escalabilidade é a habilidade de escolher componentes alternados que possuem maior ou menor capacidade. De modo ideal, um sistema aberto pode ser facilmente escalonado para cima, selecionando-se uma plataforma com maior capacidade de processamento e/ou armazenamento, trilhando um caminho migratório por uma seqüência se plataformas de capacidades superiores. A estabilidade permite a um sistema aberto ser mantido apesar da falta de viabilidade de qualquer um dos fornecedores. Assim, mudar para um outro vendedor não é tão traumático quanto antigamente o que oferece maior estabilidade ao sistema. Os componentes de um sistema aberto tendem a ser considerados “commodities”, sujeitos a competição de numerosos vendedores, o que determina a existência de preços competitivos de mercado. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 25 - Parte II (Engenharia de Banco de Dados) 8.5 – OS PADRÕES 8.5.1 - OMG Formado em 1989 por consórcio de dezenas de companhias dentre as quais estão os maiores desenvolvedores de “software” e “hardware” incluindo usuários, o Object Management Group (OMG) iniciou suas atividades tendo como meta padronizar e promover o paradigma de orientação a objetos. Os trabalhos envolvendo o padrão OMG estão atualmente divididos por grupos de trabalho seguindo os componentes da tecnologia proposta. Dentre suas mais significativas especificações encontram-se o Modelo de Objetos, a CORBA (“Commom Object Request Broker Architecture”, e os “Object Services. A utilização do ORB (“Object Request Broker”) estabelece diversas funcionalidades aos objetos dentre as quais temos: a distribuição em rede; a localização baseado em identificadores; a invocação remota de métodos e outras, que podem ser comparadas às funcionalidades encontradas em SGBDOO. Os Serviços são também funcionalidades dos objetos, contudo para tornar o padrão OMG mais flexível, optou-se pela colocação em ORB apenas do mínimo necessário para a comunicação entre objetos. Assim sendo, por meio da utilização da linguagem de definição de interfaces (IDL), pode-se realizar os vários Serviços que se estendem desde a manipulação convencional de objetos (criação, remoção, movimentação e cópia), a definição de integridades referenciais que permite a propagação seletiva de operações, até a colocação de níveis de autorização, consultas em ambiente distribuído, suporte a Versões de Objetos e Evolução de Esquemas, todos incluídos em planos futuros de extensão do Padrão. CORBA ORB e SGBDOO Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 26 - Parte II (Engenharia de Banco de Dados) 8.5.2 - ODMG Com o interesse comum por Bases de Dados Orientadas a Objetos, o Object Database Management Group (ODMG) foi criado em 1991 e desde então vem agregando membros dentre os quais estão pesquisadores e desenvolvedores das seguintes companhias: Ontos, O2 Technology, Objectivity, GemStone Systems, Andersen Consulting, HP, Sybase, Texas Instruments e outras. Buscando agir sobre as demandas dos usuários, o ODMG propôs um padrão de portabilidade cujo objetivo é garantir que programas aplicativos (atuando sobre SGBDOO) possam ser facilmente convertidos para as diversas linguagem de programação aceitas pelo gerenciador, possibilitando assim, que uma mesma Base de Dados possa ser compartilhada pela utilização (em aplicativos) de linguagens de programação suportadas pelo Padrão. Os estudos realizados em conjunto resultaram em um documento cuja versão revisada foi denominada ODMG- 93. Nele encontram-se as especificações de: uma Arquitetura para SGBDOO’s; um Modelo de Objetos; uma Linguagem de Definição de Objetos (ODL); uma Linguagem de Consulta de Objetos (OQL) baseada no SQL; uma Linguagem de Manipulação de Objetos (OML) que atua em propriedades e operações sobre objetos persistentes; sintaxes e semânticas dos comandos em ODL, OML e OQL para as linguagens C++ e Smalltalk; e o Mapeamento para a Arquitetura e Modelo OMG. O Modelo de Objetos suporta os conceitos tradicionais de Classe, Objeto, Atributo, Método, Herança e Arquitetura do SGBDOO - ODMG Hierarquia de Tipos Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 27 - Parte II (Engenharia de Banco de Dados) Abstração de Generalização/Especialização. Adicional-mente, oferece integridade referencial através de um Objeto Referência (relacionamento 1:1, 1:N e N:M) e a representação de coleções de objetos por meio de tipos pré-definidos (por exemplo: set; bag -conjunto permite duplicação; array - tamanho variável; e list -tamanho variável e tipo incerto). As linguagens ODL, OML e OQL apresentam-se desvinculadas de qualquer linguagem existente, proporcionando assim um mecanismo de independência. Desta forma, Esquemas de Dados definidos em ODL podem ser transladados para a linguagem de programação desejada, e consultas criadas pelo OQL oferecem uma interface de acesso interativo ou programado em uma linguagem de programação. A versão atual do Padrão ODMG atinge somente as necessidades básicas dos usuários de programas aplicativos orientados a objetos. Particularmente, o conceito de Versões (Objetos ou Classes) e operações para Evolução de Esquemas, ainda não são tratados nas Bases de Dados centralizadas e muito menos nas distribuídas. 8.5.3 - ANSI/X3 O instituto de padronização americano ANSI9 possui o comitê National Committee for Information Technology Standards* - NCITS (entre 1961- 1996 era denominado X3) direcionado a questões envolvendo Computadores e Processamento de Dados, e X3/SPARC/DBSSG Formou-se o sub-comitê SPARC (“Standards Planning and Requirements Committee”) cuja responsabilidade é gerar recomendações de esforços nas áreas necessárias sob a ação do grupo de estudos apropriado. Em janeiro de 1989, o grupo de estudos especializado DBSSG (“Database Systems Study Group”) estabeleceu um grupo tarefa (OODBTG10) voltado à programação orientada a Objetos e modelos (sistemas) de Bases de Dados orientadas a objetos. Uma publicação preliminar do Padrão foi apresentada no primeiro workshop de padronização de BDOO , Atlantic City, NJ, May 22, 1990. X3/H2 - SQL SPECIFICATIONS X3/H7 - OBJECT INFORMATION MANAGEMENT X3/J16 - C++ STANDARD 8.5.4 - PCTE+ O PCTE+ ("Portable Common Tool Environment") é um padrão para ambientes integrados de desenvolvimento de “software” que permite a portabilidade de I-CASE’s para diferentes plataformas de “hardware” e Sistemas Operacionais. O PCTE iniciou-se em outubro de 1983 sendo desenvolvido inicialmente no projeto ESPRIT por um consórcio pan-europeu de empresas como BULL S.A., General Electric Company, OLIVETTI e SIEMENS entre outras. Entre as coleções integradas de ferramentas e serviços especificados pelo PCTE+, encontram-se um Sistema de Gerenciamento de Objetos (OMS) composto por um conjunto de 9 “American National Standards Institute” 10 “Object-Oriented Databases Task Group” Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 28 - Parte II (Engenharia de Banco de Dados) primitivas para manipulação de Objetos, e mecanismos de execução e comunicação entre processos ou programas. Segundo o modelo (extensão do MER) utilizado no OMS, todos os Objetos (arquivos) têm suas características descritas por um conjunto de Atributos, um conjunto de Relacionamentos Bidirecionais, e um "Content" que define o conteúdo do Objeto ("file", "message queue", "block device"). Cada Tipo de Objeto define as características de todas as suas instâncias. O conjunto de Tipos forma uma Hierarquia (de Generalização) suportando o conceito de Herança e Múltipla Herança. Um "Link" é uma associação unidirecional entre dois Objetos e pode ser usado para representar uma referência simples entre Objetos ou para modelar estruturas. Um Relacionamento representauma mútua dependência entre dois Objetos, sendo este determinado por dois "Links", que juntos proporcionam as cardinalidades um-para-um, um-para-muitos ou muitos-para-muitos. A organização do Esquema de Dados é estruturada em conjuntos não disjuntos, chamados de "Schema Definition Sets” (SDS), onde cada um agrupa as definições específicas para um usuário, para uma ferramenta ou para um grupo de usuário de um mesmo projeto. A criação de um "SDS" é realizada definindo-se seus elementos componentes, independentemente de qualquer outro SDS. Uma característica importante proporcionada pelo padrão PCTE+ é o compartilhamento de definições de dados por diversos usuários. Através da operação de "IMPORT", uma ferramenta ou usuário pode conseguir o compartilhamento de definições de um SDS, desde que lhe seja permitido o acesso. Um processo de trabalho poderá necessitar de vários SDS's na definição de sua Visão da BD. A lista formada por SDS's utilizados em um processo é chamada de "Working Schema" (WS). Nesse processo é realizada a composição de SDS's do respectivo WS através da união dos conjuntos que não causam inconsistências. Na ocorrência de conflitos de informações, é realizada uma seleção das informações prioritárias, seguindo a ordem da lista de SDS's definidas pelo "Working Schema". As Versões são estabelecidas sobre Objetos Complexos. A estrutura de derivação entre Versões é um grafo acíclico dirigido (DAG) expresso por relacionamentos do tipo Predecessor- Sucessor que definem por meio de categorias e cardinalidades o comportamento dos “links” gerenciados pelo OMS. As alterações são restritas somente às Versões que não possuem predecessores, o que proporciona uma estratégia simples para o controle da integridade das Versões. 8.5.5 - ISO/STEP STEP (“STandard for the Exchange of Product data”) é o nome informal para um conjunto de documentos (ISO série 10303) estabelecidos pelo grupo de trabalho ISO/TC184/SC4. Desde sua primeira versão publicada em 1992, a organização do padrão se manteve relativamente simples, estruturada em partes correlacionadas e modulares com o único objetivo de oferecer condições para o compartilhamento e troca de dados usando os recursos integrados (específicos e genéricos em projetos de engenharia) de represen-tação. O padrão STEP, em sua Parte 11, apresenta como métodos de representação um modelo de dados (EXPRESS) similar ao Modelo Entidade- Organização do padrão STEP Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 29 - Parte II (Engenharia de Banco de Dados) Relacionamento, no entanto mais sofisticado pois inclui a descrição de estruturas de dados e restrições semânticas através de uma linguagem de textual. Partindo da perspectiva futura que o STEP será usado concorrentemente por diversos aplicações em uma abordagem de “engenharia simultânea”, uma extensão do padrão inclui no modelo EXPRESS uma série de mecanismos e ferramentas para o reconhecimento de Versões e Deltas. Um conjunto mínimo de operações são usadas na definição de arquivos Delta, o que permite um “audit trail” ou reconstrução das mudanças realizadas e eventos ocorridos. 8.6 - ANÁLISE GERAL A amostragem apresentada nas seções anteriores, sobre alguns dos conceitos abordados pelos Padrões mais significativos, leva a uma avaliação das tendências futuras e principais preocupações dos especialistas em representação e manipulação de informações. Entre as considerações apresentadas nesses padrões encontram-se propostas de arquiteturas para sistemas, para modelos e linguagens de dados, e para os “serviços” prestados aos objetos. A ênfase, até o momento, dos estudos e propostas de padronização está em atingir as demandas (no caso, portabilidade e interoperabilidade) dos usuários de BD em sistemas de gerenciamento e em ambientes amigáveis de manipulação. Nesse sentido, nota-se a preocupação do ODMG e PCTE+ pela portabilidade de aplicações, enquanto OMG e ISO/STEP salientam soluções para a interoperabilidade de aplicações. Pela compatibilidade de interesse, é possível encontrar muita cooperação entre os grupos de padronização, como é o caso do OMG e ODMG que possuem membros em comum o que determinou a compatibilidade de ambos os trabalhos no reaproveitamento de algumas definições, como por exemplo o ODMG ODL e o Modelo de Objetos que são respectivamente extensões do OMG IDL e de seu respectivo Modelo. A tendência futura é termos sistemas de informação baseados em uma arquitetura aberta (OSA - “Object Services Architecture”) que integrada softwares independentes, onde obtém-se altos graus de portabilidades e comunicação entre aplicativos (sistemas) por meio do compartilhamento de modelos e linguagens. Pela própria natureza desde Padrões, não existem estimativas ou previsões sobre o futuro de seus trabalhos, pois são ainda incertos os caminhos abertos pelas tecnologias emergentes e muito menos se conhece as demandas advindas do mercado. As expectativas, no entanto, são promissoras no sentido de que a evolução para arquiteturas abertas e apoiadas no paradigma de orientação a objetos é uma realidade que tem se mostrado promissora. ❋ Arquivo Delta
Compartilhar