Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programa de Mestrado em Ciência da Computação Faculdade de Ciências Matemática, da Natureza e Tecnologia da Informação Sistemas de Banco de Dados NOTAS DIDÁTICAS PÓS-GRADUAÇÃO Copyright © - Versão Ano 2003 Prof. Dr. Luiz Camolesi Jr. Apresentação Estas Notas Didáticas têm o objetivo de registrar alguns pontos importantes na área de Banco de Dados e apresenta-los de forma clara e didática neste curso. Existem dificuldades específicas quando se tenta abordar o tema, uma vez que em informática nada é permanente ou imutável, estando sujeito a críticas e alterações. Além disso, especificamente Banco de Dados é por si mesmo um campo polêmico e controvertido em vários conceitos. Existem diversos grupos de pesquisadores em todo o mundo (inclusive no Brasil) voltados a estudos sobre esta área buscando inovações tecnológicas que tornem o armazenamento de informações um valioso instrumento para auxiliar no crescimento dos indivíduos, das empresas e da sociedade moderna. Os complementos básicos desta notas didáticas são as anotações em aula, os exercícios e as bibliografias adicionais (livros a artigos). Através destes, procuro estimular o interesse, o acompanhamento evolutivo e a pesquisa desta importante e primordial área da computação. Finalmente, quero sugerir que você mantenha estas notas didáticas sempre atualizadas, a fim de que elas se tornem, na medida do possível, uma referência mais completa sobre o assunto, progressiva e permanentemente útil . Prof. Dr. Luiz Camolesi Jr. Email: lcamoles@unimep.br Site: www.unimep.br/~lcamoles Bacharel em Ciência da Computação – ICMC / USP São Carlos Mestre em Ciências [Área de Banco de Dados] – ICMC / USP São Carlos Especialização em Eng. da Qualidade Industrial – FEM / UNICAMP Campinas Doutor em Ciências [Área de Banco de Dados] – IFSC / USP São Carlos Membro da SBC e ACM SIGMOD Bibliografia de Referência Livros “GENÉRICOS” Fundamentals of Database Systems (ISBN 0-8053-1748-1) Ramez Elmasri , Shamkant Navathe - Editora Benjamin/Cummings, - 1994 – 2ª Edição Sistemas de Bancos de Dados (ISBN 0-07-044754-3 - www.bell-labs.com/topic/books/db-book/ ) Henry F. Korth , Abraham Silberschatz– Editora Makron – 1997 – 3ª Edição Database Management Systems ( www.cs.wisc.edu/coral/~dbbook ) Raghu Ramakrishnan – Editora MCB McGraw-Hill - 1998 ! Introdução a Sistemas de Banco de Dados C. J. Date – Editora Campus – 1990 ! Banco de Dados Chu Shao Yong – Editora Atlas – 1983 ! Banco de Dados: Tópicos Avançados C. J. Date – Editora Campus – 1989 ! Database Design Gio Wiederhold - Makron Books – 1983 ! PeopleWare : Como Gerenciar Equipes e Projetos .... Tom DeMarco , Timothy Lister – Editora Makron – 1987 ! Information Systems Developement : A Database Approach David Avison , Paul Golder , Hanifa Shah – Editora MacGraw-Hill – 1998 – 3ª Edição PROJETO CONCEITUAL DE BANCOS DE DADOS ! A Abordagem do Modelo Entidade-Relacionamento Peter Chen – Editora Makron - 1990 ! DataBase Modeling & Design – The Fundamental Principles Toby J. Teorey – Editora Morgan Kaufmann – 1994 – 2ª Edição Conceptual Database Design: Na Entity-Relationship Approach (ISBN 0-8053-0244-1) C. Batini , S. Ceri , S. H. Navathe – Editora Benjamin/Cummings – 1992 PROJETO LÓGICO DE BANCOS DE DADOS ! Relational Database Theory Paolo Atzeni , Valeria Antonellis – Editora Benjamin/Cummings – 1993 ! Fundamentals of Data Normalization Alan F. Dutka , Howard H. Hanson – Editora Addison-Wesley – 1989 PROJETO FÍSICO DE BANCOS DE DADOS ! Organização de Banco de Dados A . L. Furtado , C. S. dos Santos - Campus – 1987 ! Design of Database Structures Toby J. Teorey , James P. Fly – Editora Prentice-Hall – 1982 ! File Structures: Theory and Practice Panos E. Livadas – Editora Prentice-Hall – 1990 ! File Structures: A conceptual Toolkits Michael J. Folk , Bill Zoellick – Editora Benjamin/Cummings – 1992 – 2ª Edição ! Indexing Techniques for Advanced Database Systems (ISBN 0-7923-9985-4) Elisa Bertino, Beng Chin Ooi, et alli - Editora Kluwer Academic Publishers – 1997 ! Indexing Data Structures in Object-Oriented Database (ISBN 0-7923-9971-4) Thomas A. Mueck, Martin L. Polaschek - Editora Kluwer Academic Publishers – 1997 ! Advanced Database Indexing (ISBN 0-7923-7716-8) Yannis Manolopoulos, Yannis Theodoridis et alli - Editora Kluwer Academic Publishers – 1999 ORIENTAÇÃO A OBJETOS ! Bancos de Dados Orientado a Objetos Setrag Khoshafian – Editora Wiley / Infobook – 1994 ! Object Data Management R. G. G. Catell – Editora Addison Wesley – 1994 ! A First Course in Database Systems (ISBN 0-13-861337-0) Jeffrey D. Ullman , Jennifer Widow – Editora Prentice Hall – 1997 ! Object Databases: An Introduction Barry Eaglestone , Mick Ridley – Editora MacGraw-Hill – 1997 ! Object Databases in Practice www.prenhall.com/books/ptr_013899725x.html Akmal B. Chaudhri , Mary Loomis – Editora Prentice-Hall – 1998 ! Object-Oriented Database Design Clearly Explained (ISBN 0-12-326428-6) Jan L. Harrington – Editora Morgan Kaufmann – 2000 CLIENTE-SERVIDOR ! Bancos de Dados Cliente/Servidor Joe Salemiz – Editora Infobook – 1993 ! Conectividade de Bancos de Dados Empresariais Richard D. Hackathorn – Editora Infobook – 1993 ! Bancos de Dados Cliente/Servidor Joe Salemi – Editora Infobook – 1993 ! Introdução aos Sistemas Cliente/Servidor Paul E. Renaud – Editora Infobook – 1994 ! Cliente/Servidor: Guia Essencial de Sobrevivência Robert Orfali ¨Dan Harkey , Jeri Edwards – Editora Infobook – 1996 BANCOS DE DADOS DISTRIBUIDOS ! Distributed Database Systems David Bell, Jane Grimson – Editora Addison Wesley – 1992 DATA WAREHOUSE ! Data Warehouse Toolkit Ralph Kimball – Editora Makron - 1998 Como Construir o Data Warehouse W. H. Inmon – Editora Campus – 1997 ! Como Usar o Data Warehouse W. H. Inmon , Richard D. Hackatorn – Editora Infobook – 1997 BANCOS DE DADOS NA INTERNET ! Construindo Servidores de Banco de Dados Internet com CGI Jeff Rowe – Editora Makron – 1998 BANCOS DE DADOS TEMPORAIS ! Temporal Databases : Theory, Design and Implementation A . Tansel , J. Clifford et alli – Editora Benjamin/Cummings – 1993 APLICAÇÕES DE BANCOS DE DADOS ! Database Marketing Estratégico Arthur M. Hughes – Editora Makron – 1998 GERENCIA DA INFORMAÇÃO ! Manual de planejamento de Informática Empresarial Norberto Torres – Editora Makron – 1994 ! Sistemas de Informações Gerenciais: Estratégica, Tática e Operacional Djalma P. R. Oliveira – Editora Atlas – 1992 ! Sistemas de Informação Executiva- EIS (Executive Information Systems) José D. Furlan, Ivonildo M. Ivo, Franciso P. Amaral – Editora Makron – 1994 IBM- DB2 ! DB2 : Universal Database Don Chamberlinl – Editora Morgan Kaufmann – 1998 SYBASE ! Sybase Systems Management Karen Hogoboom – Editora Prentice Hall – 1997 JASMINE ! The Jasmine Object Database (ISBN 1-55-860494-4) Setrag Khoshafian, Norayr Minassian – Editora Morgan Kaufmann – 1998 INFORMIX ! The Informix DBA Survival Guide Joe Lumbley – Editora Prentice Hall – 1999- 2ª Edição ORACLE Oracle 8 : The Complete Reference Kevin Loney, George Koch – Editora Oracle Press – 1997 ! Oracle 8 : Administration and Management Michael R. Ault – Editora John Wiley Computer – 1997 ! Oracle 8i – Série Ramalho (ISBN 85-7251-523-2) José Antonio Ramalho – Editora Berkeley – 1999 SQL ! Guide of SQL John Viescas – Editora Microsoft Press – 1989 ! A Guide to The SQL Standard C. J. Date , Hugh Darwen – Editora Addison Wesley – 1997 – 4ª Edição ! The Practical SQL Handbook J. Bowman , S. Emerson & M. Darmovshy – Editora Addison-Wesley – 1993 - 2ª Edição ! SQL : Guia de Referencia do Programador Wayne S. Freeze – EditoraCiência Moderna – 1998 ! SQL: A Linguagem dos Bancos de Dados (ISBN 8572515011) José Antônio Ramalho – Editora Berkeley – 1999 ! SQL: The Complete Reference James R. Groff, Paul N. Weinberg – Editora McGraw-Hill – 1999 Hands-On SQL: The Language, Querying, Report and the Marketplace Robert Groth, David Gerber – Editora Prentice Hall – 1999 ! SQL for Smarties : Advanced SQL Programming (ISBN 1-55860-576-2) Joe Celko – Editora Morgan Kaufmann – 1999 - 2ª Edição CORBA ! Inside Corba Thomas J. Mowbray , William A Ruth – Editora Addison-Wesley – 1997 ! CORBA: Design Patterns Thomas J. MowBlay, Raphael C. Malveau – Editora John Wiley and Sons – 1997 ! The Object Data Standard: ODMG 3.0 (ISBN 1-55860-647-5) R. G. G. Cattel, Douglas K. Barry, et alli – Editora Morgan Kaufmann – 2000 ENGENHARIA DE BANCO DE DADOS ! The Object Constraint Language Jos Warner , Anneke Kleppe – Editora Addison-Wesley – 1999 Internet Revistas Developers Magazine DB2 Magazine Oracle Magazine www.axcelbooks.com.br www.db2mag.com www.oramag.com Oracle View Database Summit Series TeraData Review www.oreview.com www.dbsummit.com www.teradatareview.com SAP Technical Journal Intelligent Enterprise IEEE Software www.saptechjournal.com www.intelligententerprise.com www.computer.org/software/ Computer World Datamation Database Programming & Design www.computerworld.com www.datamation.com www.dppd.com Editoras Makron Miller Freeman - MD Ziff Davis – ZD www.makron.com.br www.mfi.com www.zd.com Wiley Computer - WCP SIGS Publishing Prentice Hall PTR www.wiley.com\compbooks www.sigs.com www.phptr.com Osborne Media Group Benjamin / Cummings Morgan Kaufmann – MK www.osborne.com heg-school.awl.com/bc/ www.mkp.com Atlas McGraw-Hill Addison Wesley Longman www.editora-atlas.com.br www.mcgraw-hill.com www.awl.com Ática Berkeley Kluwer Academic Publishers www.atica.com.br www.berkeley.com.br www.kap.nl Livrarias Livraria Cultura Science Springer Amazon www.livcultura.com.br www.science.springer.de www.amazon.com Livraria Siciliano www.siciliano.com.br Empresas Oracle IBM Sybase www.oracle.com (.br) www.ibm.com (.br) www.sybase.com (.br) Microsoft Computer Associates Informix www.microsoft.com www.cai.com www.informix.com Consist Rational Software Platinum Technology www.consist.com.br www.rational.com www.platinum.com Lotus SAP Inprise www.lotus.com/home.nsf www.sap.com www.inprise.com.br Universidades University of Wisconsin – CS Universidade de São Paulo - SC Stanford University www.cs.wisc.edu/exodus www.icmc.sc.usp.br www-db.stanford.edu University of California, Berk. University of Arizona Univ. Federal de São Carlos s2k-ftp.cs.berkeley.edu:8000 www.cs.arizona.edu www.ufscar.br Universidade de Campinas Univ. Federal do Rio de Janeiro Univ. Federal do Rio G. do Sul www.unicamp.br www.ufrj.br www.ufrgs.br Associações, Orgãos e Grupos Sociedade Brasileira de Computação - SBC Associação das Empresas Brasileiras de Software e Serviços de Informática - ASSESPRO www.sbc.org.br www.assespro.org.br SUCESU Association for Computing Machinery - ACM www.sucesu.org.br www.acm.org Institute of Electrical and Electronics Engineers IEEE International Organization for Stardardization ISO www.ieee.org www.iso.ch Object Management Group – OMG Object Data Management Group - ODMG Ministério da Ciência e Tecnologia – MCT Ministério da Educação e Cultura – MEC www.omg.org www.odmg.org www.mct.gov.br www.mec.gov.br OLAP Council Data Mining Institute www.olapcouncil.org www.datamining.org The Meta Data Coalition Association for Information and Image Management www.he.net/~metadata www.aiim.org Transation Processing Performance Council Fundação Biblioteca Nacional www.tpc.org www.bn.br Grupo de Banco de Dados e Imagens - GBDi Pacific Northwest National Laboratory www.gbdi.icmc.sc.usp.br www.pnl.gov Associação Brasileira de Normas Técnicas - ABNT www.abnt.org.br Estrutura Programática Conceitos Fundamentais .................................................................................................... Parte I Engenharia de Banco de Dados........................................................................................... Parte II Projeto Conceitual de Banco de Dados .............................................................................. Parte III Projeto Lógico de Banco de Dados Relacional .................................................................. Parte IV Programação: Linguagem SQL ........................................................................................... Parte V Projeto Físico de Banco de Dados ...................................................................................... Parte VI Projeto de BD Orientado a Objetos..................................................................................... Parte VII Projeto Arquitetônico de Sistemas de BD........................................................................... Parte VIII Data Warehouse .................................................................................................................. Parte IX “Por mares nunca dantes navegados/.....Em perigos e guerra esforçados, mais do que prometia a força humana/ E entre gente remota edificaram/ Novo reino, que tanto sublimaram” Luís de Camões Os Lusíadas, Canto I, 1572 Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 1 – Parte I (Conceitos Fundamentais) Conceitos Fundamentais 11 páginas ♦♦ IINNTTRROODDUUÇÇÃÃOO ♦♦ HHIISSTTÓÓRRIIAA ♦♦ UUSSUUÁÁRRIIOOSS ♦♦ AARRQQUUIITTEETTUURRAA AANNSSII//SSPPAARRCC ((Tsichritzis & Klug) ♦♦ EESSQQUUEEMMAA DDEE DDAADDOOSS ♦♦ VVIISSÕÕEESS ♦♦ SSIISSTTEEMMAA DDEE GGEERREENNCCIIAAMMEENNTTOO DDEE BBAANNCCOOSS DDEE DDAADDOOSS ((SSGGBBDD)) ♦♦ DDIICCIIOONNÁÁRRIIOO DDEE DDAADDOOSS ♦♦ LLIINNGGUUAAGGEENNSS EE IINNTTEERRFFAACCEESS ♦♦ AARRQQUUIIVVOOSS DDEE DDAADDOOSS ♦♦ PPRROOCCEESSSSAAMMEENNTTOO DDEE AARRQQUUIIVVOOSS XX SSBBDD ♦♦ OOBBSSEERRVVAAÇÇÕÕEESS "Não basta ensinar ao homem uma especialidade, porque se tornará assim uma máquina utilizável e não uma personalidade. É necessário que adquira um sentimento, um senso daquilo que vale a pena ser empreendido, daquilo que é belo, do que é moralmente correto." Albert Einstein I Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 2 – Parte I (Conceitos Fundamentais) 1 - INTRODUÇÃO Há uma grande necessidade em se realizar o armazenamento de informações que não se encontram isoladas umas das outras. Além de uma forma adequada para definir o armazenamento destas informações, os usuários desejam realizar operações sobre esta coleção de dados, tais como, adicionar (inserir) novos dados, recuperar (consultar) um determinado subconjunto de dados, atualizar ou modificar a estrutura dos dados e eliminar informações não mais necessárias. Uma solução para este problema foi apresentada com o advento da tecnologia em Bancos de Dados (Bases de Dados, BD, Database em Inglês, Bases de Données em Francês, Bases de Datos em Espanhol, Databaser em Russo). Uma definição mais precisa de Banco de Dados não existe formalmente contudo pode-se dizer que: a). Um Banco de Dados é uma coleção logicamente coerente de dados com um determinado significado inerente. Isto significa que um conjunto aleatório de dados não pode ser considerada um Banco de Dados. b). Um Banco de Dados é projetado, construído e composto por um conjunto de dados para um propósito específico. Existe um grupo de usuários ou algumas aplicações pré-concebidas onde estes dados serão utilizados. c). Um Banco de Dados representa aspectos de uma parte restrita do mundo real, denominado de mini-mundo. Alterações que ocorra no mini-mundo são refletidas no Banco de Dados. Resumindo, um BD representa uma fontede onde informações são derivadas, possui um nível de interação com eventos que ocorrem no mundo real, e uma audiência que está interessada em seu conteúdo. Além do conceito de BD, outros estão são necessários para se compreender o ambiente de um BD . Um Sistema de Gerenciamento de Bancos de Dados (SGBD) é uma coleção de programas que permite ao usuário definir, construir e manipular Bancos de Dados para as mais diversas aplicações. Definir um BD envolve a especificação e a descrição detalhada dos tipos de dados a serem armazenados. Construir um BD é o processo de armazenamento dos dados em si em um determinado meio físico que é controlado pelo SGBD. Manipular um BD inclui uma série de funções para se realizar operações de consulta, atualizações e remoções de dados do BD. O Banco de Dados e seu software são juntos denominados de Sistema de Bancos de Dados (SBD). Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 3 – Parte I (Conceitos Fundamentais) 2 – HISTÓRIA Os primeiros SBD’s foram implantados no mercado no final da década de 60 e eram conceitualmente muito simples (não possuindo todos os conceitos anteriores), de acordo com as necessidades das aplicações da época. Inicialmente os grandes impulsionadores deste segmento foram a IBM, ORACLE e SYBASE. 3 - USUÁRIOS Um Banco de Dados pode apresentar diversos usuários cada qual com uma necessidade em particular, e com um envolvimento diferente com os dados do BD. Os usuários podem ser classificados nas seguintes categorias: Administradores de Bancos de Dados (DBA): : em qualquer organização onde muitas pessoas compartilham muitos recursos, existe a necessidade de um administrador chefe para supervisionar e gerenciar estes recursos. Num ambiente de base de dados, o recurso primário é a própria base de dados e os recursos secundários são o próprio SGBD e software relacionados. A administração desses recursos são de responsabilidade do DBA (“Database Administrator”). O DBA é responsável por autorizar acesso à base de dados e coordenar e monitorar seu uso. O DBA é responsável por problemas, tais como, quebra de segurança ou baixo desempenho. Em grandes organizações, existe uma equipe de DBA´s; Analistas de Bancos de Dados (Projetistas): possuem a responsabilidade de identificar os dados a serem armazenados no BD e pela escolha da estrutura apropriada utilizada para armazená- los. Eles devem se comunicar com os possíveis usuários do BD, obter a visão dos dados que cada um possui, integrando-as de forma a se obter uma representação adequada de todos os dados. Estas visões são então analisadas e, posteriormente, integradas para que, ao final, o projeto da base de dados possa ser capaz de dar suporte aos requisitos de todos os grupos de usuários; Usuários Finais: existem profissionais que precisam ter acesso à base de dados para consultar, modificar e gerar relatórios. A base de dados existe para estes usuários. Existem algumas categorias de usuários finais: ♦ usuários ocasionais: ocasionalmente fazem acesso à base de dados, mas eles podem necessitar de diferentes informações a cada vez que fazem acesso. Eles podem usar uma linguagem de consulta sofisticada para especificar suas requisições e são, tipicamente, gerentes de médio ou alto-nível; Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 4 – Parte I (Conceitos Fundamentais) ♦ usuários comuns ou paramétricos: estes usuários realizam operações padrões de consultas e atualizações, chamadas TRANSAÇÕES PERMITIDAS, que foram cuidadosamente programadas e testadas. Estes usuários constantemente realizam recuperações e modificações na base de dados; ♦ usuários sofisticados: incluem engenheiros, analistas de negócios e outros que procuraram familiarizar-se com as facilidades de um SGBD para atender aos seus complexos requisitos; ♦ Analistas de Sistemas e Programadores de Aplicações: analistas de sistemas determinam os requisitos dos usuários finais, especialmente de usuários que necessitam de maior interação com o BD, enquanto que os programadores de aplicações utilizam-se destas especificações para desenvolver uma aplicação. 4 - ARQUITETURA ANSI/SPARC (TSICHRITZIS & KLUG) Um SBD se divide em geral em três níveis : ! Nível Interno: descreve a estrutura de armazenamento físico dos dados do BD, fornecendo um modelo físico dos dados que inclui detalhes sobre os caminhos de acesso aos dados internamente; ! Nível Conceitual: descreve a estrutura de todo o BD para uma determinada comunidade de usuários, ocultando detalhes sobre a organização física dos dados e apresentando a descrição lógica dos dados e das ligações existentes entre eles. ! Nível Externo: possui as diversas descrições do BD de acordo com os grupos de usuários. BASE DE DADOS ARMAZENADA ESQUEMA INTERNO ESQUEMA CONCEITUAL VISÃO EXTERNA 1 VISÃO EXTERNA N USUÁRIOS FINAIS NÍVEL EXTERNO NÍVEL CONCEITUAL NÍVEL INTERNO mapeamento externo/conceitual mapeamento conceitual/interno Figura I.1 - Níveis de Esquema Observe que os três níveis apresentados anteriormente apresentam apenas descrições dos dados. Como os três níveis apresentam descrições diferentes para os mesmos dados, torna-se Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 5 – Parte I (Conceitos Fundamentais) necessário converter uma representação em outra, ou seja, definir mapeamentos de dados entre os níveis. 5 - ESQUEMA DE DADOS O Esquema de Dados é uma parte do BD que contem informações sobre os próprios dados do BD, entre elas inclui a estrutura do BD. 6 - VISÕES Uma Visão consiste de um subconjunto de dados do BD, ou pode conter dados "virtuais" que são derivados dos existentes no BD, mas que não estão explicitamente armazenados. As Visões existem para satisfazer as necessidades dos usuários na apresentação apenas das informações importantes e ocultando aquelas desnecessárias. 7 - SGBD O Sistema de Gerenciamento de Bancos de Dados tem como principais funções: ♦ Controle de Redundância: Em um sistema tradicional de controle de arquivos cada usuário normalmente apresenta seus próprios arquivos armazenando o conjunto de dados que é de seu interesse, e nestes casos é comum ocorrer redundância de dados. Esta redundância consiste no armazenamento de uma mesma informação em locais diferentes, o que pode provocar sérios problemas. Alguns destes problemas consiste inicialmente no aumento de esforço computacional para realizar a atualização destes dados; aumento do espaço necessário para o armazenamento dos dados. Mas o problema mais sério é que a representação dos dados desta forma pode tornar-se inconsistente, pois duas informações podem aparecer em locais distintos, mas apresentando valores diferentes. Em um sistema de BD as informações só se encontram armazenadas em um único local ou estão existindo duplicação controlada dos dados. ♦ Compartilhamento dos Dados: O SGBD deve incluir um software para o controle de concorrência ao acesso dos dados em um ambiente multi-usuário, de forma a possibilitar o compartilhamento dos dados, garantindo que se vários usuários tentar realizar operações de atualização sobre um mesmo conjunto de dados, o resultado destas operações possa ser correto. Outro mecanismo que suporta a noção de compartilhamento de dados consiste na facilidade para definir visões de usuário, o qual torna disponível uma porção específica dos dados do BD de acordo com o seu interesse. ♦ Controle de Acesso: Quando vários usuários compartilham os dados, é comum que alguns não apresentem autorização para acesso a todo o BD. Por exemplo, os dados financeiros são freqüentemente considerados confidenciais e, desse modo, somente pessoas autorizadas devem ter acesso. Além disso, pode ser Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 6 – Parte I (Conceitos Fundamentais) permitido, a alguns usuários, apenas a recuperação dos dados. Já, para outros,são permitidas a recuperação e a modificação. Assim, o tipo de operação de acesso - recuperação ou modificação - pode também ser controlado. Tipicamente, usuários e grupos de usuários recebem uma conta protegida por palavras-chaves, que é usada para se obter acesso à base de dados, o que significa dizer que contas diferentes possuem restrições de acesso diferentes. Um SGBD deve fornecer um subsistema de autorização e segurança, que é usado pelo DBA, para criar contas e especificar restrições nas contas. O SGBD deve então obrigar estas restrições automaticamente. ♦ Controle de Transações: Uma Transação é um conjunto de operações sobre o BD que devem ser executados integralmente e sem falhas ou interrupções. O SGBD deve realizar o controle das Transações para que sejam executadas com segurança. ♦ Possibilidade de Múltiplas Interfaces: Vários usuários representam também necessidades diversas no que refere aos tipos de interfaces fornecidas pelo SGBD. Interfaces para consultas de dados, programação, e interfaces baseadas em menus ou em linguagem natural são exemplos de alguns tipos que podem estar disponíveis. ♦ Representação de Relacionamento Complexo entre Dados: uma base de dados pode possuir uma variedade de dados que estão inter-relacionados de muitas maneiras. Um SGBD deve ter a capacidade de representar uma variedade de relacionamentos complexos entre dados, bem como recuperar e modificar dados relacionados de maneira fácil e eficiente ♦ Reforçar Restrições de Integridade: A maioria dos aplicativos apresentam serviços que possibilitam garantir a integridade dos dados no BD. A restrição de integridade mais simples consiste na especificação do padrão de formato para os dados ou valores assumidos como “default”. ♦ Providenciar "Backup" e Restauração de Dados: Um SGBD deve fornecer recursos para restauração caso ocorra falhas de hardware ou software. O subsistema de backup e restauração do SGBD é o responsável pela restauração. Por exemplo, se o sistema de computador falhar no meio da execução de um programa que esteja realizando uma alteração complexa na base de dados, o subsistema de restauração é responsável em assegurar que a base de dados seja Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 7 – Parte I (Conceitos Fundamentais) restaurada no estado anterior ao início da execução do programa. Alternativamente, o subsistema de restauração poderia assegurar que o programa seja re-executado a partir do ponto em que havia sido interrompido. Sistema de Base de Dados Usuários/Programadores Consultas/Programas de Aplicações SGBD Software p/ processar consultas/programas Software p/ acessar a Base de Dados BaseBase Meta Figura I.2 – Arquitetura Simplificada ♦ Independências de Dados: O SGBD possibilita o desenvolvimento de programas aplicativos que não possuem a descrição real de como os dados (arquivos) estão fisicamente armazenados. Desta forma, alteração nas estruturas dos arquivos do BD não afetam os programas aplicativos. Os três níveis podem ser utilizados para melhor compreender o conceito de independência de dados. Pode-se apresentar dois tipos de independência de dados: ♦ Independência Lógica dos Dados: consiste na capacidade de alterar o esquema conceitual sem provocar modificações nos esquemas externos ou nos programas aplicativos. ♦ Independência Física dos Dados: consiste na capacidade de alterar o esquema interno sem provocar modificações no esquema conceitual. Apesar de todas as vantagens citadas anteriormente sobre um SGBD, há situações em que deve-se ponderar sobre sua utilização, como por exemplo, o alto investimento inicial e possibilidade de compra de um novo hardware; ou a possibilidade de insatisfação no desempenho geral do sistema que pode ser provocado pelas funções de segurança, controle de concorrência, recuperação e manutenção de integridade dos dados. Para que um SGBD possa fornecer as características de independência de dados, suporte a múltiplas visões de vários usuários, entre outras, torna-se necessário a existência de uma organização no sistema para que isto seja possível. 8 - DICIONÁRIO DE DADOS Bons SGBD’s normalmente apoiam a inclusão de descrições textuais sobre cada um dos arquivos do BD, como também de cada usuário e programas aplicativos que são utilizados. Estas informações são incluídas no Dicionário de Dados para servirem de apoio aos novos projetistas ou programadores que possam ser colocados no grupo de trabalho, e deste modo, facilitar o entendimento dos ambiente que está sendo utilizado. Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 8 – Parte I (Conceitos Fundamentais) Outros documentos de apoio, como por exemplo, os textos sobre a especificação e a análise das necessidades dos usuários são valiosos e devem ser guardados contudo são informações externas ao BD. Exemplo de Dicionário de Dados para uma tabela denominada Cliente: Cliente Campo Descrição Tipo Máscara Tamanho Restrições Nome Nome do cliente char - 55 Não Nulo Idade Quantidade de anos desde nascimento int 99 - >0 Nascimento Dia e mês de nascim. char dd-mm 5 - Endereço Localização de moradia char 120 Não Nulo Profissão Ocupação profissional principal char 60 - Es_Civil Estado Civil char 15 Solteiro / Casado / Divorciado / Separado 9 - LINGUAGENS E INTERFACES Uma vez que o projeto do BD tenha se completado e um determinado SGBD tenha sido escolhido para a sua implementação, a primeira "ordem do dia" consiste em realizar uma especificação dos esquemas conceituais e internos, e os respectivos mapeamentos entre eles. Para estas etapas o SGBD oferece uma série de linguagens. A primeira delas consiste da Linguagem de Definição de Dados (DDL), a qual é utilizada pelos analistas e projetistas do BD para a definição dos esquemas. O SGBD também apresentará um interpretador para a DDL, o qual será responsável pelo processamento dos comandos da DDL, e realiza o armazenamento do esquema definido em estruturas internas do BD. Uma vez definido e preenchido o BD com os seus dados, estes normalmente sofrerão uma série de operações de acesso às informações nele armazenado. O SGBD fornece a Linguagem de Manipulação de Dados (DML) para a especificação destas operações. Os comandos da DML podem aparecer embutidos em uma outra linguagem (geralmente uma linguagem de programação de alto nível), e neste caso esta é denominada de Linguagem hospedeira, e DML é denominada de Sublinguagem de dados. De outra forma se DML for utilizada isoladamente de uma forma interativa, possa a ser denominada de Linguagem de consulta (ou "query language"). Para interagir com o SGBD além das linguagens descritas anteriormente, o sistema deve apresentar interfaces que sejam amigáveis. Estas interfaces podem ser diversas formas: a). Interfaces baseadas em Menus: permite ao usuário selecionar o trabalho a ser realizado através de uma lista de opções apresentada na forma de Menus. Neste tipo de interface uma consulta pode ser construída através da escolha apropriada de um conjunto de opções; Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 9 – Parte I (Conceitos Fundamentais) b). Interfaces Gráficas: apresenta ao usuário o esquema de Base em uma forma de diagrama, e a criação de consultas é realizada através da manipulação deste diagrama. Normalmente se apresenta associada a um conjunto de menus; c). Interface Baseadas em Formulários: o sistema apresenta ao usuário um formulário, através do qual pode ser preenchido certas entradas. Através destes formulários pode ser realizadas operações de consultas, inserções e remoções de dados; d). Interface em Linguagem Natural: aceita comandos ou requisições escritas em uma linguagem natural ou em alguma outra linguagem de consulta, sendo capaz de "compreender" o que está sendo pedido; e). Interface para usuários comuns: normalmente estes usuários, como o de um terminal bancário,pode realizar apenas um conjunto limitado de operações e de forma repetitiva. Sendo assim, é oferecida uma interface que seja fácil de compreender e com um número reduzido de informações a serem manipuladas e poucas opções disponíveis. No controle de acesso e transações dos dados utiliza-se uma Linguagem de Controle de Dados, que inclusive possibilita estabelecer os diversos níveis de segurança de cada usuário. 10 - ARQUIVOS DE DADOS Os Bancos de Dados são organizados em arquivos de dados que são estruturados dependendo do pacote SGBD adquirido, assim sendo, o relacionamento entre registros de um mesmo arquivo ou de arquivos diferentes depende do gerenciador. Internamente, as estruturas de arquivo são criadas de modo a tornar rápido e flexível o armazenamento e busca de informações, para isso são normalmente utilizados técnicas de indexação dos arquivos como por exemplo Árvore B, Árvore TRIE e etc. O extravio de algum ponteiro em arquivo pode significar a perda de valiosas informações ou o atraso no trabalho. Desta forma, alguns SGBD’s incorporam o conceito de estruturas robustas, ou seja, duplicações de ponteiro para evitar perdas desastrosas. 11 - PROCESSAMENTO DE ARQUIVOS X SBD Algumas características tornam distintas as duas abordagens (Sistemas de Processamento de Dados e o Sistema de Banco de Dados) para o armazenamento de informações, tais como: A). Característica auto-contida do Sistema de BD: o sistema de BD não apresenta apenas os dados em si, mas também o Esquema de Dados que armazena uma completa descrição ou definição das estruturas das informações armazenadas. Em um sistema de arquivos, a definição dos dados faz parte dos programas aplicativos, que são construídos para manipularem especificamente um conjunto de informações. B). Isolamento entre dados e programas: Em um sistema tradicional de arquivos os dados e suas definições se encontram embutidos no interior dos programas. Qualquer alteração na estrutura dos dados significa em alteração no código de todos os programas que manipulam estes dados. Um SGBD consiste de um programa que já apresenta funções próprias para manipular Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 10 – Parte I (Conceitos Fundamentais) qualquer conjunto de dados definidos pelo usuário. Além disso, estas definições são armazenadas separadamente dos dados, ou seja, apresenta a característica de independência de dados. C). Abstrações de Dados: Um BD fornece ao usuário uma representação conceitual dos dados que não inclui muitos detalhes sobre a sua forma de armazenamento, ou como será a organização física destes. D). Suporte a várias visões dos dados: Um BD geralmente apresentam uma série de usuários com diferentes perspectivas ou visões dos dados existentes Processamento Tradicional de Arquivos Processamento Base de Dados Definição dos dados é parte do código de programas de aplicação Meta Dados eliminação de redundâncias Dependência entre aplicação específica e dados Capaz de suportar diversas aplicações eliminação de redundâncias Independência entre dados e programas facilidade de manutenção Representação de dados ao nível físico Representação conceitual através de dados e programas facilidade de manutenção Cada visão é implementada por módulos específicos Suporte a múltiplas visões facilidade de consultas Tabela I.1 – Tipos de Processamento 12 - OBSERVAÇÕES A escolha da tecnologia adequada de Banco de Dados e sua correta utilização trazem algumas vantagens adicionais: ♦ Potencial para obrigar a Padronização: a abordagem de base de dados permite que o DBA defina e obrigue a padronização entre os usuários da base de dados em grandes organizações. Isso facilita a comunicação e a cooperação entre vários departamentos, projetos e usuários. Padrões podem ser definidos para formatos de nomes, elementos de dados, telas, relatórios, terminologias, etc. O DBA pode obrigar a padronização em um ambiente de base de dados centralizado, muito mais facilmente que em um ambiente onde cada usuário ou grupo tem o controle de seus próprios arquivos e software; ♦ Flexibilidade: mudanças na estrutura de uma base de dados podem ser necessárias devido a mudanças nos requisitos. Por exemplo, um novo grupo de usuários pode surgir com necessidade de informações adicionais, não disponíveis atualmente na base de dados. Alguns SGBD’s permitem que tais mudanças na estrutura da base de dados sejam realizadas sem afetar a maioria dos programas de aplicações existentes; ♦ Redução do Tempo de Desenvolvimento de Aplicações: uma das principais características de venda da abordagem de base de dados é o tempo reduzido para o desenvolvimento de novas aplicações, tal como a recuperação de certos dados da base de dados para a impressão de novos relatórios. Projetar e implementar uma nova base de dados pode tomar mais tempo do que escrever uma simples aplicação de arquivos especializada. Porém, uma vez que a base de dados Notas Didáticas Prof. Luiz Camolesi Jr.Pg. 11 – Parte I (Conceitos Fundamentais) esteja em uso, geralmente o tempo para se criar novas aplicações, usando-se os recursos de um SGBD, é bastante reduzido. O tempo para se desenvolver uma nova aplicação em um SGBD é estimado em 1/4 a 1/6 do que o tempo de desenvolvimento, usando-se apenas o sistema de arquivos tradicional, devido as facilidades de interfaces disponíveis em um SGBD; ♦ Disponibilidade de Informações Atualizadas: tão logo um usuário modifique uma base de dados, todos os outros usuários “sentem” imediatamente esta modificação. Esta disponibilidade de informações atualizadas é essencial para muitas aplicações, tais como sistemas de reservas de passagens aéreas ou bases de dados bancárias. Isso somente é possível devido ao subsistema de controle de concorrência e restauração do SGBD; ♦ Economia de Escala: a abordagem de SGBD’s permite a consolidação de dados e de aplicações reduzindo-se, desse modo, o desperdício em atividades redundantes de processamento em diferentes projetos ou departamentos. Isto possibilita à organização como um todo investir em processadores mais poderosos, e periféricos de armazenamento e de comunicação mais eficientes. ❋ 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 Sistemade 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 a precisa 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 objetode 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ção mais 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çãoe 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 diversas 1 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 capacidadede 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ção do 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 armazenamentodos 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 tem como 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
Compartilhar