Tecnlogo em Anlise e Desenvolvimento de Sistemas GILSON ARAUJO DE SOUZA
So Paulo 2014 2
GILSON ARAUJO DE SOUZA
Banco de Dados
So Paulo 2014 Produo textual interdisciplinar individual, onde ser exposto o contedo ensinado no 4 semestre. 3
SOUZA, Gilson Araujo de. Banco de Dados. 2014, XX f. Produo textual interdisciplinar individual Tecnlogo em Anlise e Desenvolvimento de Sistemas, Universidade Norte do Paran, So Paulo, 2014.
RESUMO A informao um dos bens mais valiosos que uma empresa ou individuo possui e necessita de um cuidado todo especial quanto ao armazenamento, disponibilidade e segurana. Devido a essas necessidades foi criado os banco de dados, onde deixaram de ser meros arquivos de armazenamento, sem uma segurana particular e at mesmo recursos de backup e preveno de erros, e passaram para uma tecnologia prpria, robusta e complexa. Entre os vrios modelos existentes no mercado, iremos abordar o orientado a objeto.
4
Sumrio
Introduo........................................................................................................06 Objetivo............................................................................................................07 1 Banco de Dados........................................................................................08 2 Banco de Dados Orientado a Objetos.......................................................09 2.1 Persistncia de Objetos..........................................................................10 2.2 Objetos Complexos................................................................................10 2.3 Identificador de Objetos..........................................................................11 2.4 Classes e Mtodos.................................................................................11 3 Banco de Dados Relacional e Banco de Dados Orientado a Objetos.......12 4 Desenvolver OO com Banco de Dados Relacional...................................13 5 ORM (Object Relational Mapper Mapeamento Objeto Relacional)........14 6 Vantagens e Desvantagens ORM.............................................................16 Concluso........................................................................................................17 Referncias......................................................................................................18
5
Lista de Siglas SGBD - Sistema Gerenciador de Banco de Dados ODBMS - Operational Database Management Systems (Sistema de Gerenciamento de Banco de Dados Operacionais) POO - Programa Orientada a Objeto OO - Orientao a Objetos BDOO - Banco de Dados Orientado a Objeto BDR - Banco de Dados Relacional ORM (Object-relational mapping - Mapeamento objeto-relacional) SQL - Structured Query Language (Linguagem estruturada de banco de dados)
6
Introduo At meados dos anos 60, os dados eram mantidos aleatoriamente em arquivos, geralmente como partes integrantes da aplicao. A partir dessa poca, surgiram os primeiros Sistemas Gerenciadores de Bancos de Dados (SGBDs) comerciais, provendo armazenamento dos dados de forma independente da aplicao, contudo, sem mecanismos de acesso eficientes. A partir dos anos 80 as aplicaes computacionais evoluram, juntamente com o poder de processamento das mquinas, surgindo a necessidade de tratar dados mais complexos, no convencionais. Devido a esse aumento na complexidade dos dados, surgiu a necessidade de formas mais adequadas de representao e armazenamento, como as bases de dados orientadas a objetos. Durante a dcada de 80, como resultado das inovaes de hardware, emergiram novas aplicaes com utilizao intensiva de dados. Para essas aplicaes, os modelos de dados tradicionais, baseados no modelo relacional, no eram adequados. Alguns exemplos de aplicaes desse tipo incluem sistemas de design e produo, como CAD (Computer-Aided Design) e CAM (Computer-Aided Manufacturing). Existe um grande interesse relativo s tecnologias orientadas a objetos na comunidade de desenvolvimento de software, sobretudo no tocante facilidade de alterao de implementao de acordo com mudanas solicitadas nos requisitos. A capacidade que esse paradigma possui de representar dados complexos uniu-se tecnologia de banco de dados, gerando os Bancos de Dados Orientados a Objeto (BDOO), que suportam modelagem e criao de dados como objetos (ODBMS, 2006).
Objetivo
O objetivo prover uma viso geral sobre sistema de BDOO, uma tecnologia no to nova, contudo considerada ainda pouco explorada. Sero apresentados os conceitos das tecnologias de Banco de Dados e suas respectivas evolues seguidas pelos conceitos de Orientao a Objetos. Diante disso estabelece-se uma base para o desenvolvimento da tecnologia de Bancos de Dados Orientados a Objetos.
!
1. Banco de Dados O propsito dos sistemas de banco de dados o gerenciamento de grandes corpos de informao. Os primeiros bancos de dados desenvolveram-se a partir do sistema de gerenciamento de arquivos. Esses sistemas evoluram primeiro em bancos de dados hierrquicos e de rede, depois em bancos de dados relacionais. Inicialmente os primeiros bancos de dados originaram-se a partir dos sistemas de gerenciamentos de arquivos. Com isso foi possvel separar pela primeira vez a aplicao dos dados. Acompanhado dos novos bancos de dados, vieram s modelagens de dados que no atual momento se tornaram muito eficiente para o desenvolvimento de aplicaes, cujas estruturas se apresentavam de forma uniforme e simplificada e tambm eram sempre orientadas ao registro. Estes modelos ficaram conhecidos como modelo hierrquico e modelo de rede. Ambos os modelos no possuam forte fundamentos tericos e tambm no suportavam noes de independncia de dados fsicos e lgicos. Os bancos de dados relacionais surgiram logo em sequncia aos modelos mencionados acima. Este modelo trouxe muitas vantagens em relao aos modelos hierrquicos e de rede. O formato relacional tabelado simples e fcil de entender. A lgebra relacional oferece fundamentos matemticos capazes de suportar metodologias de anlises de dados e a possibilidade de agrupar dados dinamicamente em tabelas virtuais em tempo de execuo, possibilitando aos bancos de dados relacionais, o desenvolvimento de aplicaes com um nvel mais elevado de independncia dos dados do que seus predecessores. Diante disso o modelo relacional caiu nas graas dos desenvolvedores e ainda hoje serve como base para inmeros SGBD. O avano computacional em diversas reas, a difuso das redes e de novas tecnologias, evidenciou novas necessidades que os bancos de dados relacionais se mostraram inadequados. Dentre os novos usos da capacidade computacional, podemos destacar o CAD/CAM (projeto/manufatura auxiliado por computador), o CASE (desenvolvimento de sistemas de computao auxiliado por computador), o "
GIS (sistemas de informao geogrfica) e etc.. Todas essas aplicaes manipulam dados com uma estrutura extremamente complexa. Na dcada de 80, visando aumentar a produtividade do desenvolvimento, facilitar a reutilizao e manuteno da analise, requisitos, projetos e especificaes, a POO se tornou muito popular entre a comunidade de desenvolvimento, sendo considerada por alguns como uma revoluo na forma de se fazer sistemas. Visando acompanhar a tendncia da poca e tambm possibilitar resolver as limitaes que os bancos de dados relacionais possuam, foi proposto um novo sistema de banco de dados, o banco de dados orientados a objetos (BDOO). 2. Banco de Dados Orientado a Objeto Um BDOO basicamente um sistema em que a unidade de armazenamento o objeto, com o mesmo conceito das linguagens de POO. A diferencia fundamental est no fato que em BDOO, os dados no deixam de existir aps o encerramento do programa, ou seja, os objetos continuam a existir mesmo se o SGBD venha a ser encerrado. Com isso os dados, isto , os valores dos atributos que fazem referncia a seus respectivos objetos no deixam de existir. Este conceito conhecido como persistncia. Outra caracterstica essencial dos BDOO que eles oferecem suporte a verses, ou seja, os objetos podem ser vistos de todas ou varias verses. Em BDOO, os objetos so tratados em um nvel lgico e tambm possuem caractersticas que no so encontradas na POO, por exemplo, a persistncia de objetos. Desta forma conceitos como classes e herana sofrem adaptaes a fim de possibilitar a aplicao em BDOO. Os conceitos de OO bsicos e necessrios para a estrutura de um BDOO so: 1. Persistncia de objetos 2. Objetos complexos 3. Presena de identificadores de objetos 4. Mecanismos de herana e mtodos 1#
2.1. Persistncia de Objetos Sem duvida nenhuma, a persistncia de objetos uma caracterstica primordial para os BDOO, pois alm de ser uma caracterstica que possibilita diferenciar BDOO das linguagens de POO, ela tambm fundamental para os BDOO. Persistncia de objetos consiste em no deixar com que objetos deixem de existir, diferente de um programa OO que ao finalizar a execuo, todos os objetos instanciados deixam de existir. Com isso os valores dos atributos do objeto tambm desaparecem. Se isso fosse aplicado aos BDOO, o resultado seria uma catstrofe, pois os dados que sero inseridos em um BDOO na forma de atributos de objetos devem existir mesmo aps o encerramento do programa de gerenciamento, tendo seu estado armazenado em um meio fsico persistente, a menos claro que os atributos sofram algum tipo de alterao ou excluso, sendo estas solicitadas pelo usurio. Para que os BDOO possam funcionar, preciso aplicar a persistncia de objetos em sua estrutura, a fim de que os dados no desapaream. Existem diversas maneira de torna o objeto persistente e todas elas variam conforme o sistema utilizado. Dentre essas formas podem-se considerar as seguintes: Por tipo de classe onde os objetos pertencentes s classes assim declaradas sero persistentes. Por chamada explcita onde o objeto pode se tornar persistente aps a sua criao atravs de comandos reservados. Por referncia onde objetos referenciados por objetos persistentes (objetos razes) tambm se tornam persistentes. 2.2. Objetos Complexos O modelo de OO suporta a representao das abstraes e comportamento dos objetos. Com isso os BDOO incorporam as caractersticas dos objetos da linguagem 11
de POO integrada com noes de estrutura de dados e de comportamento. O conjunto de atributos descreve o estado interno dos objetos. Cada ocorrncia do objeto no banco de dado denominada de instancia do objeto. A estrutura de objetos em banco de dados muito similar ao conceito de entidades, quando aplicado ao MER. Para uma representao direta de objetos complexos, dos quais nos modelos relacionais no possuem representao, proposta a utilizao do modelo de dados das linguagens orientadas a objetos a primeira forma normal no respeitada nos BDOO, pois podemos representar em um objeto valores no atmicos, como conjuntos, listas, vetores etc. Assim como nas linguagens orientadas a objetos, a representao se torna extremamente fcil devido a esse fato (no normalizado). 2.3. Identificador de Objetos Nos BDOO, os identificadores de objetos (OID) tm uma identidade muito mais forte que na linguagem de POO, pois nos BDOO, os objetos tm a necessidade de continuarem a existir mesmo aps a execuo do programa. Isto ocorre devido ao fato que os objetos podem voltar a serem usados futuramente. O OID deve ser nico e imutvel durante toda a existncia dos objetos e tambm deve ser valido para todo o banco de dados uma vez que ajudam na recuperao do objeto e so utilizados para estabelecer relacionamentos entre os objetos. 2.4. Classes e Mtodos Todo o conceito e caracterstica de classe e herana da OO devem estar presentes em BDOO. Diante disso outra importante capacidade em BDOO o gerenciamento do conceito de herana dentro de uma hierarquia de classes armazenveis. Da mesma forma que em linguagem de POO, os BDOO podem criar novas classes em funo de classes j existentes. 12
Uma hierarquia de classes oferece muito mais flexibilidade para efetuar alteraes na estrutura de um BDOO (incluindo novos atributos ou mtodos nos objetos) bem como possibilita a evoluo do esquema de banco de dados atravs da adio de classes novatas na hierarquia. As classes do sistema so um exemplo tpico da caracterstica de herana dentro de um SGBDOO. Isto porque a maioria dos SGBDOO possuem uma coleo de classes e objetos dentro de sua estrutura. Essa coleo esta estruturada de forma hierrquica. Caso necessrio, uma determinada aplicao pode herdar atributos e mtodos dessas classes de sistema a fim de implementar suas prprias classes. Em ressumo essas classes do sistema de SGBDOO possuem mtodos que tm como propsito o armazenamento, manipulao, controle de concorrncia entre outras funes. O conceito de encapsulamento para BDOO continua sendo o mesmo, porm, quando se faz uma consulta ao banco de dados, no possvel prever todas as consultas e atualizaes que o usurio possa desejar. Assim, no se pode agregar todos os mtodos nas classes de antemo. Sendo assim pode-se considerar que o encapsulamento no adequado aos BDOO em algumas situaes, entretanto o encapsulamento uma das caractersticas fundamentais para POO e descartar o seu uso em BDOO pode descaracterizar parcialmente o conceito de OO. 3. Banco de Dados Relacional e Banco de Dados Orientado a Objetos BDR e BDOO possuem caractersticas distintas, mas basicamente servem ao mesmo propsito: persistir dados necessrios para a manuteno do negcio para o qual so aplicados, possibilitando a recuperao, comparao e tratamento desses dados a fim de produzir resultados tangveis. Em BDR, uma coleo de tabelas, todas com nomes nicos, compem a base de dados, podendo estar relacionada a uma ou mais tabelas. Conceitos como integridade referencial de dados que garantem que um dado referenciado em uma 13
tabela esteja presente na tabela que est sendo referenciada e chaves primrias esto presentes e garantem que um conjunto de informaes possa ser representado de maneira consistente, independente da forma de acesso. J um BDOO possui trs pilares principais: herana, polimorfismo e encapsulamento, discutidos acima. Este modelo apresenta maior flexibilidade na manipulao de seu contedo e por meio de identificadores de objetos manipula os dados de forma consistente. As bases de dados tradicionais so bastante eficientes para tarefas ligadas ao processamento de dados. A gerao de folhas de pagamento e o gerenciamento de contas correntes, por exemplo. Esse tipo de aplicao trabalha basicamente com tipos de dados simples: numricos, texto e datas. Alm disso, essas aplicaes possuem itens de dados que podem ser representados como registros razoavelmente pequenos e campos atmicos. Apesar do conceito de BDOO ser bastante distinto do modelo relacional, o mesmo resulta da integrao entre a OO e a tecnologia de banco de dados tradicionais. Enquanto na programao OO, os objetos existem apenas enquanto o programa que os criou est em execuo, os BDOO podem criar objetos que sejam persistentes e compartilhados entre diferentes aplicativos. 4. Desenvolver OO com Banco de Dados Relacional Mapeamento Objeto Relacional persistir de maneira automtica e transparente os objetos de um aplicativo para tabelas em um banco de dados relacional, ou seja, transforma dados de uma representao para a outra. No desenvolvimento de um sistema, muitas vezes o programador dedica boa parte do tempo de desenvolvimento construindo comandos de instrues SQL para realizar a persistncia dos dados no banco de dados relacional. Conforme a Figura 1, o aplicativo precisar de uma camada de mapeamento objeto relacional, que ir traduzir as estruturas e operaes do sistema orientado a objetos para o banco de dados relacional. 14
O mapeamento objeto relacional faz a persistncia automtica de dados de uma representao para outra. Persistncia se trata do armazenamento de dados que esto em meio voltil, como a memria RAM, para dispositivos de memria secundria, o disco rgido, por exemplo. Consiste em manter em meio fsico recupervel, como banco de dados, arquivo etc. Quando se fala de persistncia em linguagem de POO, normalmente a preocupao de como armazenar dados em um banco de dados relacional.
Figura 1 5. ORM (Object Relational Mapper Mapeamento Objeto Relacional) Visando aproveitar ao mximo o conceito de OO, o Mapeamento Objeto-Relacional (ORM) consiste em um framework que tem por objetivo suprir as disparidades entre o paradigma OO e o modelo entidade-relacional, criando uma ponte (mapeamento) entre o modelo relacional e o modelo OO. Ou seja, ao trabalhar com essa abordagem, possvel a construo de sistemas utilizando o paradigma OO, cujo os objetos so persistidos em um banco de dados relacional. 15
Um ORM possui diversos mtodos bsicos que iro realizar a interao entre a aplicao e o banco de dados, se responsabilizando por algumas tarefas bsicas, como o CRUD (Create, Read, Update e Delete), por exemplo. Alm disso, o ORM ir gerenciar os detalhes de mapeamento de um conjunto de objetos para um banco de dados. O ORM reduz ao mnimo a necessidade de escrever cdigos de conexo e queries SQL. Dessa forma, possvel obter uma reduo significativa nos cdigos da aplicao, gerando um cdigo mais elegante e consequentemente ampliando a facilidade de posteriores manutenes na aplicao. importante deixar claro que a utilizao de um framework ORM no substitui totalmente a necessidade da utilizao de SQL na sua aplicao. Embora o ORM satisfaa a maior parte das necessidades de interao com o banco de dados, em alguns casos, haver a necessidade, por exemplo, de consultas mais customizadas, que tero que ser realizadas por meio de SQL. Hoje no mercado h vrias ferramentas ORM disponveis, segue uma lista de algumas ferramentas mais utilizadas no mercado: NHibernate LonqConnect LLBLGEN SubSonic Persistor Hibernate Linq To SQL Entity Framework Gentle 16
6. Vantagens e Desvantagens ORM Os SGBDs relacionais possuem uma caracterstica muito importante: so extremamente confiveis e mais eficientes, se comparados maioria dos SGBDOO disponveis no mercado. Alm disso, o modelo de dados relacional foi criado para permitir a representao de uma grande variedade de problemas usando um pequeno conjunto de conceitos simples. Atravs da linguagem de consulta SQL possvel fazer a busca e recuperao dos dados necessrios de forma bastante eficiente. Dentre as vantagens do modelo relacional, talvez a mais importante esteja relacionada com a persistncia dos dados. As regras e rotinas para tratamento da persistncia dos dados podem ser criadas no prprio banco de dados relacional. Uma das grandes desvantagens do modelo relacional pode ser observada no momento da realizao da anlise de um sistema a ser implementado: a grande dificuldade em abstrair a realidade, ou seja, traduzir para um modelo de tabelas, com suas relaes entre si, suas chaves primrias e estrangeiras, um problema do mundo real.
1
Concluso Persistncia dos dados sempre ser o maior foco da maioria dos projetos de aplicativos, pois o maior interesse do usurio manter os dados salvos, de fcil acesso, tanto na agilidade quanto na disponibilidade. Os bancos de dados evoluram nos ltimos anos, hoje um SGBD oferece muitos recursos que facilita a organizao e a disponibilizao da informao, uma vez que a disponibilizao necessita de uma poltica rgida, pois nem todos os usurios podem acessar qualquer tipo de dado. O banco de dados relacional sem dvida, ainda apresenta o melhor desempenho, melhor disponibilidade, maior facilidade na configurao da segurana dos dados, alm de outras caractersticas que esto a seu favor, ainda conta com um grande nmero de usurios. Apesar do crescimento da POO, os BDOO no conseguiram apresentar caractersticas melhores ou pelo menos semelhante ao modelo relacional, por isso o seu uso um pouco tmido na indstria. Apesar do modelo relacional possuir todas essas caractersticas, a comunidade de desenvolvedores da OO ainda sonham em facilitar o seu trabalho, jogando a maioria das funes SQL para um framework ORM. Esses frameworks trazem bastante benefcios para o desenvolvedor, porm eles precisam ser utilizados com cuidado pois, em um caso de consulta, eles trazem todos os dados da tabela consultada para a aplicao, ficando assim ao cargo do desenvolvedor filtrar os dados que sero exibidos para o usurio em linha de programao. Esse processo faz com que a aplicao se torne um pouco mais lenta, por isso cabe um estudo por parte dos analistas e programadores antes de fazer uso do framework.
1!
Biografia Nassu, Euginio A. - Banco de dados orientados a objetos / Eugnio A.Nassu, Valdemar W. Setzer So Paulo: Blucher, 1999. Korth, Henry F. Sistemas de bancos de dados / Henry F. Korth,Abrahem Silberschatz; traduo Mauricio Heihachiro Galvan Abe: reviso tcnica Slvio Carmo Palmieri, - 2 Ed. So Paulo: MAKRON Books, 1993. http://conged.deinfo.uepg.br/artigos.htm http://pt.wikipedia.org http://www.devmedia.com.br/