You are on page 1of 24

Sobral - CE

2013.2
JOS VDAL DE ARAJO
SSTEMA DE ENSNO PRESENCAL CONECTADO
ANLSE E DESENVOLVMENTO DE SSTEMAS
PRODUO TEXTUAL INTERDISCIPLINAR:
ndividual
Sobral - CE
2013.2
PRODUO TEXTUAL INTERDISCIPLINAR:
ndividual
Trabalho de Anlise e Desenvolvimento de Sistemas,
apresentado Universidade Norte do Paran -
UNOPAR, como requisito parcial para a obteno de
mdia semestral nas disciplinas de: Desenvolvimento
Orientado a Objetos, Redes de Computadores,
Modelagem Orientada a Objetos, Tpicos em
Desenvolvimento de Sistemas e Seminrios V.
Orientador: Profs. Mrcio Roberto Chiaveli
Paulo K. Nishitani
Polyanna P. G. Fabris
Adriana A. Loper
JOS VDAL DE ARAJO
LISTA DE FIGURAS
Figura 1 - Representao da Estrutura de um BDOO..................................................6
Figura 2 - ORM (Mapeamento Objeto-Relacional).....................................................15
Figura 3 - Como Funciona o ORM..............................................................................16
SUMRIO
1 NTRODUO...........................................................................................................3
2 OBJETVO..................................................................................................................4
3 DESENVOLVMENTO...............................................................................................5
4 CONCLUSO...........................................................................................................20
REFERNCAS..........................................................................................................21
1 INTRODUO
A necessidade de manipulao e armazenamento de dados
complexos vem crescendo rapidamente com o passar do tempo. Essa necessidade
fez com que o paradigma orientado a objetos fosse agregado aos Sistemas
Gerenciadores de Banco de Dados (SGBDs). As informaes complexas, como
grficos, imagens, udio, vdeo, mapas, entre outros, requerem funcionalidades que
vo alm do que o modelo relacional de banco de dados pode oferecer. Por essa
razo, surgiu o modelo de banco de dados orientado a objetos, que traz muitos
benefcios em relao ao banco de dados relacional, pela sua produtividade ao
agregar a orientao a objetos ao banco de dados. Entretanto, por ser um modelo
jovem e imaturo que carece de mais estudo e desenvolvimento, suas operaes so
lentas quando comparadas com os bancos de dados relacionais existentes. Por
essa razo, foi desenvolvido o banco de dados objeto relacional, o qual agrega
caractersticas de ambos os bancos, o BDOO e o BDR, possuindo assim
caractersticas da orientao a objetos combinada com tecnologia relacional que
domina o mercado e funciona perfeitamente, seja no desempenho ou na
confiabilidade do SGBD.
Este trabalho apresentar caractersticas dos BDOO e DBOR, com
uma comparao das vantagens e desvantagens dos dois modelos.
3
2 OBJETIVO
Esta produo textual interdisciplinar do 4 semestre do curso de
Anlise e Desenvolvimento de Sistemas, tem como objetivo aplicar e exercitar os
contedos assimilados no perodo, abordando os diversos conceitos, tcnicas e
prticas sobre banco de dados orientado a objeto, banco de dados relacional e ORM
(Object Relational Mapepr) Mapeamento Objeto Relacional.
4
3 DESENVOLVIMENTO
3.1 FAA UMA PESQUISA SOBRE BANCO DE DADOS ORIENTADO A OBJETO
Hoje, o banco de dados orientados a objeto um fator emergente
que integra banco de dados e a tecnologia de orientao a objetos. Por um lado, a
necessidade de realizar manipulaes complexas para os banco de dados
existentes e uma nova gerao de aplicaes de banco de dados geralmente
requisitam mais diretamente um banco de dados orientado a objeto. Por outro lado,
aplicaes de linguagens orientadas a objeto e sistemas esto exigindo capacidades
de banco de dados, tais como continuidade, simultaneidade e transaes, dos seus
ambientes. Estas necessidades esto levando criao de sistemas poderosos,
chamados banco de dados orientados a objeto.
3.1.1 DESCREVA SUA APLICAO E SEU MECANISMO DE FUNCIONAMENTO
O desenvolvimento dos Sistemas de Gerenciamento de Banco de
Dados Orientado a Objetos (SGBDOO) teve origem na combinao de ideias dos
modelos de dados tradicionais e de linguagens de programao orientada a objetos.
No SGBDOO, a noo de objeto usada no nvel lgico e possui
caractersticas no encontradas nas linguagens de programao tradicionais, como
operadores de manipulao de estruturas, gerenciamento de armazenamento,
tratamento de integridade e persistncia dos dados.
Os modelos de dados orientados a objetos tem um papel importante
nos SGBDs porque, em primeiro lugar, so mais adequados para o tratamento de
objetos complexos (textos, grficos, imagens) e dinmicos (programas, simulaes).
Depois, por possurem maior naturalidade conceitual e, finalmente, por estarem em
consonncia com fortes tendncias em linguagens de programao e engenharia de
software. O casamento entre as linguagens de programao e banco de dados um
dos problemas que esto sendo tratados de forma mais adequada no contexto de
orientao a objetos.
Alguns conceitos encontrados nas linguagens de programao
orientadas a objetos (LPOO) so tambm aplicados nos modelos de dados
5
orientados a objetos, porm bancos de dados requerem alguns conceitos prprios.
Os objetos, em uma LPOO, existem somente durante a execuo do programa e
so por isso chamados de transitrios. Um banco de dados orientado a objetos pode
estender a existncia dos objetos de modo que eles sejam armazenados
permanentemente, isto , os objetos so persistentes (eles persistem aps o trmino
do programa e podem ser recuperados posteriormente e compartilhados por outros
programas.
Figura 1 - Representao da Estrutura de um BDOO
A seguir so apresentados os principais conceitos envolvidos em
bancos de dados orientados a objetos.
6
3.1.1.1 ABSTRAO
a considerao apenas das propriedades comuns de um conjunto
de objetos, omitindo os detalhes, utilizada com frequncia na definio de valores
similares e na formao de um tipo a partir de outro, em diferentes nveis de
abstrao. O uso de abstraes permite a gerao de tipos baseada em hierarquias
de tipos e de relacionamentos.
Os principais conceitos de abstrao utilizados em banco de dados
so generalizao e agregao. A generalizao corresponde associao " um"
onde, a partir de propriedades comuns de diferentes entidades, criada uma outra
entidade. O processo inverso a especializao. A agregao corresponde a
associao "parte de".
3.1.1.2 PERSISTNCIA DE OBJETOS
Sem duvida nenhuma, a persistncia de objetos uma caracterstica
primordial para os BDOO, pois alem 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, ou seja, ao finalizar a execuo de um programa que tenha como
base uma linguagem de POO, 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
7
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.
3.1.1.3 OBJETO
Os objetos so abstraes de dados do mundo real, com uma
interface de nomes de operaes e um estado local que permanece oculto. As
abstraes da representao e das operaes so ambas suportadas no modelo de
dados orientado a objetos, ou seja, so incorporadas as noes de estruturas de
dados e de comportamento. Um objeto tem um estado interno descrito por atributos
que podem apenas ser acessados ou modificados atravs de operaes definidas
pelo criador do objeto. Um objeto individual chamado de instncia ou ocorrncia de
objeto. A parte estrutural de um objeto (em banco de dados) similar noo de
entidade no modelo Entidade-Relacionamento.
A cada objeto armazenado no banco de dados associado um
identificador nico (OID: O!"#$ I%"&$'('")), que gerado pelo SGBDOO (sistema de
gerenciamento de banco de dados orientado a objetos). O valor do OD no e visvel
ao usurio, mas usado internamente pelo sistema para identificar cada objeto de
forma nica e criar e gerenciar referncias entre objetos.
A principal propriedade de um OD que ele imutvel, isto , o
valor do OD de um particular objeto no deve mudar. O SGBDOO deve ter algum
mecanismo para gerenciar ODs e preservar a propriedade de imutabilidade.
tambm desejvel que cada OD seja usado somente uma vez, isto , os ODs dos
objetos que so removidos do banco de dados no so reaproveitados.
OID* + C,-."* P)'/0)'-*
Nos modelos orientados a objetos no existe o conceito de chave
primria como acontece no modelo relacional. Ao invs disso, existem os ODs dos
objetos que, como j dito, so criados e mantidos pelo sistema de gerenciamento de
banco de dados e no so de acesso do usurio.
As vantagens do uso de ODs com relao s chaves so:
- os programadores de aplicaes no precisam se preocupar com a
8
seleo de chaves para as vrias classes de objetos;
- obtm-se melhor desempenho, pois os ODs so implementados
em baixo nvel pelo sistema;
- embora as chaves sejam mais significativas ao usurio, muitas
vezes o usurio precisa usar cdigos artificiais, sem significado semntico, para
poder identificar as tuplas de uma relao.
3.1.1.1 IDENTIDADE DE OBJETO
Num modelo com identidade de objetos, estes tm existncia
independente de seus valores correntes e dos endereos de armazenamento fsico.
A identidade do objeto geralmente gerada pelo sistema. A impossibilidade de
garantir a identificao de objetos exclusivamente atravs de suas propriedades
estruturais e comportamentais motivou a definio de identificadores nicos de
objetos, que persistem no tempo de forma independente ao estado interno do objeto.
A identidade de objetos elimina as anomalias de atualizao e de
integridade referencial, uma vez que a atualizao de um objeto ser
automaticamente refletida nos objetos que o referenciam e que o identificador de um
objeto no tem seu valor alterado.
3.1.1.2 OBJETOS COMPLEXOS
Os objetos complexos so formados por construtores (conjuntos,
listas, tuplas, registros, colees, arrays) aplicados a objetos simples (inteiros,
booleanos, strings). Nos modelos orientados a objetos, os construtores so em geral
ortogonais, isto , qualquer construtor pode ser aplicado a qualquer objeto. No
modelo relacional este no o caso, visto que s possvel aplicar o construtor de
conjuntos s tuplas e o construtor de registro a valores atmicos.
A manuteno de objetos complexos, independente de sua
composio, requer a definio de operadores apropriados para sua manipulao
como um todo, e transitivos para seus componentes. Exemplos destas operaes
so: a atualizao ou remoo de um objeto e cpia profunda ou rasa.
9
3.1.1.3 ENCAPSULAMENTO
O encapsulamento possibilita a distino entre a especificao e a
implementao das operaes de um objeto, alm de prover a modularidade que
permite uma melhor estruturao das aplicaes ditas complexas, bem como a
segurana dentro do sistema. Em banco de dados se diz que um objeto est
encapsulado quando o estado oculto ao usurio e o objeto pode ser consultado e
modificado exclusivamente por meio das operaes a ele associadas.
3.1.1.4 TIPO DE OBJETOS
O tipo de objeto pode ser visto como a descrio ou especificao
de objetos. Um tipo possui duas partes, interface (visvel para o usurio do tipo) e
implementao (visvel s para o usurio construtor do tipo).
Existem vrias vantagens em se ter um sistema de tipos em um
modelo de dados. Alm de modularidade e segurana, do ponto de vista da
evoluo do sistema os tipos so especificaes do comportamento que podem ser
compostos e modificados incrementalmente, para formar novas especificaes.
3.1.1.5 M6TODOS
Os objetos nos SGBDOOs so manipulados atravs de mtodos.
Em geral, a definio de um mtodo consiste de assinatura e corpo. A assinatura
especifica o nome do mtodo, os nomes e classes dos argumentos e a classe do
resultado, se existir. O corpo representa a implementao do mtodo e consiste de
um conjunto de instrues expressas em uma dada linguagem de programao.
3.1.1.7 CLASSES
Um conjunto de objetos que possui o mesmo tipo (atributos,
relacionamentos, operaes) pode ser agrupado para formar uma classe. A noo
de classe associada ao tempo de execuo, podendo ser vista como uma
representao por extenso, enquanto que o tipo uma representao intencional.
Cada classe tem um tipo associado, o qual especifica a estrutura e o comportamento
de seus objetos. Assim, a extenso da classe denota o conjunto dos objetos
10
atualmente existentes na classe e o tipo prov a estrutura destes objetos.
3.1.1.18 9ERANA
Herana um mecanismo que permite ao usurio definir tipos de
forma incremental, por refinamento de outros j existentes, permitindo composio
de tipos em que as propriedades de um ou mais tipos so reutilizadas na definio
de um novo tipo. De fato, ela corresponde a transferncia de propriedades
estruturais e de comportamento de uma classe para suas subclasses.
As principais vantagens de herana so prover uma maior
expressividade na modelagem dos dados, facilitar a reusabilidade de objetos e
definir classes por refinamento, podendo fatorar especificaes e implementaes
como na adaptao de mtodos gerais para casos particulares, redefinindo-os para
estes, e simplificando a evoluo e a reusabilidade de esquemas de banco de
dados.
3.1.1.11 TIPOS DE 9ERANA
Os dois tipos de herana, simples e mltipla, so descritos a seguir:
9")-&:- S'/;<"*: Na herana simples um certo tipo pode ter
apenas um supertipo, da mesma forma uma subclasse s herda diretamente de uma
nica classe. Podemos classificar esta herana em quatro subtipos: de substituio,
de incluso, de restrio e de especializao.
9")-&:- M=<$';<-: Nesta herana um tipo pode ter supertipos e os
mesmos refinamentos de herana simples. H basicamente dois tipos de conflitos
referentes herana mltipla: entre o tipo e o supertipo e entre mltiplos supertipos.
O primeiro pode ser resolvido dando-se prioridade definio presente no tipo, e
no a no supertipo. Com os conflitos entre mltiplos supertipos, como uma resoluo
por default pode causar heranas no desejadas, a abordagem mais segura
baseada na requisio explcita da interveno do usurio.
M>$?%?* " M"&*-@"&*
Um mtodo, em relao a um objeto, corresponde ao
comportamento dos objetos, implementando uma operao associada a uma ou
mais classes, de forma similar aos cdigos dos procedimentos usados em
11
linguagens de programao tradicionais, que manipula o objeto ou parte deste. Cada
objeto tem um certo nmero de operaes para ele definida. Para cada operao
pode-se ter um ou mais mtodos de implementao associados.
As mensagens so a forma mais usada para se ativar os mtodos.
Num SGBDOO os objetos se comunicam e so ativados atravs de mensagens
enviadas entre eles.
3.1.1.12 POLIMORFISMO
Em sistemas polimrficos uma mesma operao pode se comportar
de diferentes formas em classes distintas. Como exemplo temos o operao print
que ser implementada de forma diferente se o objeto correspondente for um texto
ou uma imagem: dependendo do objeto teremos um tipo de impresso. Tem-se
tambm polimorfismo quando ocorre a passagem de diferentes tios de objetos como
parmetros enviados a outros objetos
Um mesmo nome pode ser usado por mais de uma operao
definida sobre diferentes objetos, o que caracteriza uma sobrecarga (overloading). A
redefinio do operador para cada um dos tipos de objetos definidos caracteriza
uma sobreposio (overriding). As operaes so ligadas aos programas em tempo
de execuo caracterizando o acoplamento tardio ou late binding.
3.1.1.13 OUTROS CONCEITOS
Finalmente h duas propriedades fundamentais para a construo
de um SGBDOO: extensibilidade e completude computacional. A primeira garante
que o conjunto de tipos oferecidos pelo sistema permite a definio de novos tipos e
no h distino entre os tipos pr-definidos e os definidos pelo usurio. A segunda
implica que a linguagem de manipulao de um banco de dados orientado a objetos
pode exprimir qualquer funo computacional.
3.1.2 QUAL A DIFERENA ENTRE BANCO DE DADOS ORIENTADO A OBJETO
E BANCO DE DADOS RELACIONAL
BDRs e BDOOs possuem caractersticas distintas mas basicamente
12
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 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 neste trabalho. Este modelo apresenta maior
flexibilidade na manipulao de seu contedo e por meio de identificadores de
objetos manipula os dados de forma consistente.
Silbeschatz et. al. (2001) concluem que 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,
so exemplos. 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 bancos de dados orientados a objetos ser
bastante distinto do modelo relacional, o mesmo resulta da integrao entre a
orientao a objetos e a tecnologia de banco de dados tradicionais. Enquanto na
programao orientada a objetos, os objetos existem apenas enquanto o programa
que os criou est em execuo, os bancos de dados orientados a objetos podem
criar objetos que sejam persistentes e compartilhados entre diferentes aplicativos.
13
3.2 PESQUISE SOBRE ORM AOBJECT RELATIONAL MAPPERB C
MAPEAMENTO OBJETO RELACIONAL
3.2.1 COMO DESENVOLVER UTILIDANDO O MODELO ORIENTADO A
OBJETOS COM UM BANCO DE DADOS RELACIONAL
Durante o desenvolvimento de software, evidente a preocupao
em que se tem em aumentar a produtividade sem abrir mo da qualidade. No que se
refere a banco de dados, possvel a utilizao de um framework ORM que nos
permita focar mais nas regras de negcios da aplicao do que na persistncia de
dados em si, permitindo um desenvolvimento mais rpido e consistente.
Visando aproveitar ao mximo o conceito de Orientao a Objetos, o
Mapeamento Objeto-Relacional (ORM) consiste em um framework que tem por
objetivo suprir as disparidades entre o paradigma orientado a objetos e o modelo
entidade-relacional, criando uma ponte (mapeamento) entre o modelo relacional e o
modelo orientado a objetos. Ou seja, ao trabalhar com essa abordagem, possvel a
construo de sistemas utilizando o paradigma orientado a objetos, cujo os objetos
so persistidos em um banco de dados relacional.
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.
Esta tcnica ultimamente tem sido muito utilizada e vem crescendo
14
bastante nos ltimos anos.
Este crescimento, tem se dado principalmente pelo fato de muitos
desenvolvedores no se sentirem a vontade de escrever cdigo SQL e pela
produtividade que esta tcnica nos proporciona.
Figura 2 - ORM (Mapeamento Objeto-Relacional)
Fonte: http://www.devmedia.com.br/orm-object-relational-mapper/19056
Na figura acima, existem 2 mundos: o relacional e o orientado a
objetos, no mundo relacional prevalecem princpios matemticos com a finalidade de
armazenar e gerenciar corretamente os dados, de forma segura e se trabalha com a
linguagem SQL que utilizada para dizer o banco de dados "O QUE? fazer e no
como fazer. J no mundo orientado a objetos, trabalhamos com classes, mtodos ou
seja, trabalhamos fundamentados na engenharia de software e seus princpios que
nos dizem "COMO fazer. O ORM justamente, a ponte entre estes dois mundos,
ou seja, ele quem vai permitir que voc armazene os seus objetos no banco de
dados, para isto fazendo um mapeamento dos seus objetos para as tabelas do
banco de dados.
15
Figura 3 - Como Funciona o ORM
Fonte: http://www.devmedia.com.br/orm-object-relational-mapper/19056
A figura acima, nos faz ter uma ideia de como o ORM trabalha. Ele
faz o mapeamento da sua classe para o banco de dados e cada ORM tem suas
particularidades, para gerar o SQL referente a insero do objeto que corresponde a
uma tabela no banco de dados e realizar a operao. Utilizando um ORM, tambm
se ganha produtividade, pois deixa-se de escrever os comando SQL para deixar que
o prprio ORM, faa isto por voc.
3.2.2 O QUE 6 ORM E PARA QUE 6 UTILIDADO
Voc que desenvolvedor de aplicaes orientadas a objetos, sabe
que de alguma maneira precisa armazenar e recuperar informaes em bancos de
dados relacionais. Um ORM (Object-Relational Mapping), nada mais do que um
Framework ou um conjunto de classes que permite que voc faa este trabalho sem
precisar escrever cdigos de conexo com o banco, querys de SQL a todo
momento, preservando as caractersticas de orientao a objetos da linguagem face
natureza relacional dos bancos de dados atuais.
Mapeamento de Objeto-Relacional (ORM) uma abordagem que
16
permite a construo de sistemas utilizando o paradigma orientado a objetos com a
persistncia destes objetos em bancos de dados relacionais. Utilizando-se de
tcnicas e estratgias especficas, possvel mapear classes com seus atributos e
associaes para o modelo relacional (SLVA et al.; 2006).
Segundo (Bauer e King, 2005), ORM consiste de quatro partes:
Uma AP para executar operaes de criar, ler, atualizar e apagar em objetos de
classes persistentes.
Uma linguagem ou AP para especificar consultas que referenciam classes e
propriedades de classes.
Um recurso para especificar o mapeamento de metadados.
Uma tcnica para interagir com objetos transacionais a fim de executar a
verificao suja, buscas de associaes ociosas e outras funes de otimizao.
O ORM pode ser dividido em quatro nveis: O relacional puro, o
mapeamento de objetos leves, o mapeamento de objeto mdio e o mapeamento
completo de objetos. O nvel de dependncia ou de independncia do modelo
relacional vai diminuindo a medida que o mapeamento fica mais completo. E no
ltimo nvel a modelagem sofisticada de objetos suportada como herana,
polimorfismo, etc.
3.2.3 QUAIS FERRAMENTAS ESTO DISPONEVEIS 9OJE NO MERCADOF
Lista de alguns softwares de mapeamento objeto-relacional
disponveis no mercado:
ADO.NET E&$'$G F)-/"H?)I Para a linguagem de programao Visual
Basic .NET e C#;
DBI+::C<-** Para a linguagem de programao Perl;
SQLO!"#$ Para a linguagem de programao Python;
9'")&-$" Para a linguagem de programao Java;
OJB Para linguagem de programao Java, da Apache Software Foundation;
D!-&@? (framework web) Framework de desenvolvimento web escrito em
Python que possui um ORM prprio;
ECO - Enterprise Core Object Para a linguagem de programao Delphi;
N9'")&-$" - Para a linguagem de programao .NET;
17
E&$'$GC<?J% Um ORM tipificado para .NET;
D?#$)'&" - Para a linguagem de programao PHP;
A#$'." R"#?)% - Para a linguagem de programao Ruby on Rails;
TMS AJ)"<'J* - Para a linguagem de programao Delphi;
SG)'J* ORM Framework ORM escrito em PHP;
P)?;"< ORM Mapeamento Objeto-Relacional para PHP5;
OJ$)?*: Subsonic, CODUS, DataTier Generator, MyGeneration, Gentle.NET,
NDO.NET, Persistor, TierDeveloper, DEV Force, etc.
3.2.1 QUAIS AS VANTAGENS E DESVANTAGENS DE SE USAR UMA
FERRAMENTA ORMF
3.2.1.1 VANTAGEM
De acordo com Esjug (2007, p.14) implementar um mapeamento
objeto relacional pode ser considerada uma tarefa complexa, porm esta tecnologia
possui algumas vantagens:
P)?%J$'.'%-%" com a eliminao dos cdigos SQL no cdigo
fonte, as classes passam a ser mais simples e com isso o sistema desenvolvido
em menor tempo.
M-&J$"&''<'%-%" por reduzir o nmero de linhas do cdigo fonte
do sistema, menor ser o trabalho de manuteno do sistema.
D"*"/;"&,? o tempo economizado no desenvolvimento, pode
ser dedicado a programar otimizaes do sistema.
I&%";"&%K&#'- %" F?)&"#"%?) por mais que um banco de dados
utilize a mesma linguagem SQL, alguns comandos, tipos de dados, podem ser
diferentes de um banco para outro.
O grande diferencial da utilizao dessa abordagem o nvel de
abstrao das operaes com os dados, pois dependendo da estratgia utilizada,
temos a ntida sensao de que estamos trabalhando com os dados sempre em
memria, devido as chamadas a base estarem totalmente isoladas e "automticas
do ponto de vista da camada de domnio da aplicao. Em Java, temos o JPA (Java
18
Persistence AP), que descreve uma especificao dizendo como os fabricantes
devem desenvolver seus frameworks, algo que muito interessante, pois isso
possibilita a troca de uma implementao por outra quase sem alteraes (a menos
que esteja usando algum recurso fora da especificao). Se mudamos nossa base
Oracle, podemos trocar nosso ORM de Hibernate para TopLink, por exemplo, em
troca de um possvel ganho de performance. Em outras linguagens temos o
ADO.NET para .NET, ActiveRecord para Ruby, no prprio Java temos Bates, etc.
3.2.1.2 DESVANTAGEM
Temos alguns contras que existem quando se decide usar algum
tipo de ORM. A primeira grande desvantagem a performance. Num ambiente
relacional, temos todos aqueles algoritmos que os bancos de dados usam para a
recuperao dos dados, so de longe muito mais performticos do que qualquer
outro tipo de tratamento dos dados na aplicao. Outra desvantagem a
complexidade e o nvel de entropia que necessrio para construir-se um bom
design. No to simples desenhar a arquitetura de um sistema utilizando uma
estratgia desse tipo, o que pode ocasionar designs fracos e ruins, como disse
anteriormente. As vezes, utilizado de maneira incorreta, o mapeamento pode acabar
separando das entidades os dados e as regras de negcio. Do ponto de vista OO
isso um pouco estranho, pois um carro, por exemplo, contm tudo dentro de um
objeto carro, certo? Ou na vida real existe um objeto Carro e outro DadosCarro?
Para resolver esse problema podemos recorrer a alguns padres (Factory, DAO,
Repository), mas como percebe-se, a complexidade foi elevada.
19
1 CONCLUSO
Atravs da confeco deste trabalho observou-se o quanto amplo a
tecnologia de orientao a objetos est permeando praticamente todas as novas
aplicaes computacionais. O que h algum tempo atrs era apenas uma buzzword
que dava um "ar de modernidade para algumas aplicaes atualmente uma
tecnologia relativamente madura, com utilizao efetiva nas mais diversas
categorias de aplicao.
Banco de dados apenas uma das reas que vem se benefciando
desta tecnologia. Provavelmente, mais do que simplesmente oferecer a capacidade
de ter um repositrio orientado a objetos para aplicaes isoladas, a importncia de
sistemas gerenciadores de base de objetos ser permitir a integrao de aplicaes
em ambientes de objetos distribudos. Nesta abordagem, os servios de um sistema
gerenciador de base de objetos podero ser incorporados a aplicaes de forma
uniforme e transparente, da mesma maneira que assim o sero servios de
interfaces grfcas com usurios ou invocao dinmica de servios distribudos.
No h duvida de que a modelagem orientada a objeto veio para
ficar e tem influenciado o tradicional modelo relacional. A unio das duas
abordagens, programao orientada a objeto e banco de dados relacionais prov a
base dos bancos de dados objeto-relacional.
Por fim, um ORM possui diversos recursos para o desenvolvedor
estar utilizando em projetos, sendo inegvel as vantagens providas pela utilizao
de um ORM, como a reduo da impedncia que existe entre um banco de dados
relacional e os objetos de uma aplicao e o consequente aumento da produtividade
e reduo do tempo gasto em manutenes.
Foi bastante prazeroso e gratificante poder transformar em um
documento prtico e objetivo todos os conceitos ministrados no 4 perodo do curso
de Anlise e Desenvolvimento de Sistemas da UNOPAR e ter a certeza de que os
mesmo nos ajudaro em nossas carreiras futuramente.
20
REFERNCIAS
BAUER, Christian; King, Gavin; L9'")&-$" E/ A:M?N, Cincia Moderna Ltda., 2005.
BOSCAROL, Clodis; Bezerra, Anderson; Benedicto, Marcos de; Delmiro, Gilliard. U/-
)"(<"+M? *?)" B-&#? %" D-%?* O)'"&$-%?* - O!"$?*. Disponvel em <
http://conged.deinfo.uepg.br/artigo4.pdf > Acesso em 29/09/2013.
DEVMEDA. ORM: O!"#$ R"<-$'?&-< M-;;"). Disponvel em: <
http://www.devmedia.com.br/orm-object-relational-mapper/19056 > Acesso em: 30/09/2013.
ELMASR, Ramez. S'*$"/-* %" -&#? %" %-%?*. Ramez Elmasri e Shamkant B. Navathe;
revisor tcnico Luis Ricardo de Figueiredo. So Paulo: Addison Wesley, 2005.
FONSECA, Andr de A.; Neto, Antonio de A. S.; Souza, Lucas T. de; Dourado, Tasso L.
B-&#? %" D-%?* O!"$?OR"<-#'?&-< ABDORB. Disponvel em <
https://disciplinas.dcc.ufba.br/pub/MATA60/WebHome/BDOR_2008.1.pdf > Acesso em 30/09/2013.
LNHA DE CDGO. U/- N?.- E)- &- T"#&?<?@'- %?* B-&#?* %" D-%?*. Disponvel em:
< http://www.linhadecodigo.com.br/artigo/68/uma-nova-era-na-tecnologia-dos-bancos-de-dados.aspx
> Acesso: 10/10/2013.
NSHMURA, Roberto Yukio (org.). B-&#? %" D-%?* II: Curso Superior de Tecnologia em
Anlise e Desenvolvimento de Sistemas - 3. So Paulo: Pearson Education do Brasil, 2009.
NSHMURA, Roberto Yukio. B-&#? %" D-%?* I: Curso superior de tecnologia em Anlise e
Desenvolvimento de Sistemas - 2. So Paulo: Pearson Education do Brasil, 2009.
OKANO, Marcelo. A&0<'*" %?* /"<,?)"* ORM AO!"#$OR"<-$'?&-< M-;;'&@B ;-)-
;<-$-(?)/- .NET. Disponvel em: < http://www.devmedia.com.br/analise-dos-melhores-orm-object-
relational-mapping-para-plataforma-net/5548 > Acesso em: 10/10/2013.
SLBERSCHATZ, A.; KORTH, H. F. and SUDARSHAN, S. (2001). Database System
Concepts, McGraw-Hill, 4th edition.
VERA, Eduardo. OPR M-;;'&@ C V-<" - ;"&-F Disponvel em:
< http://evieira.wordpress.com/2009/04/ > Acesso em: 08/10/2013.
21