You are on page 1of 13

SUMRIO

1 2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.3 2.3.1 2.3.2 2.4 3 4

INTRODUO DESENVOLVIMENTO LISTAS LINEARES FIFO (FIRST IN FIRST OUT) FILO (FIRST IN LAST OUT) TIPOS DE ALOCAO TRANSAES EM BANCO DE DADOS ACID BANCO DE DADOS RELACIONAIS VERSUS PROGRAMAO ORIENTADA A OBJETOS ORM (Object Relational Mapper) HIBERNATE HERANA E POLIFORMISMO CONCLUSO REFERNCIAS

3 4 4 4 5 6 7 8 8 9 9 12 13

INTRODUO

Esta produo textual interdisciplinar do 3 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 das listas lineares (FIFO e FILO), alocaes simplesmente encadeadas e duplamente encadeadas, conceitos de ACID de uma transao, ORM, herana e poliformismo, bem como a utilizao de banco de dados relacional com a programao orientada a objetos.

DESENVOLVIMENTO

1 LISTAS LINEARES

Lista linear a estrutura que permite representar um conjunto de dados afins, de forma a preservar a relao de ordem linear de seus elementos. o conjunto de n 0 ns X1, X2, ... Xn, organizados estruturalmente de forma a refletir as posies relativas dos mesmos; se n > 0, ento X1 o primeiro n; para 1 < k < n, o n Xk precedido pelo n Xk-1 e seguido do Xk+1; temos tambm Xn como ltimo n e quando n = 0, diz-se que a lista vazia. Exemplos de listas lineares no cotidiano: - Pessoas na fila de um banco; - Pessoas esperando nibus; - Palavras de uma frase; - Letras em uma palavra; - Itens em estoque em uma empresa; - Dias da semana; - Cartas de baralho.

Exemplos de listas lineares em sistemas informatizados: - Controle de documentos para impresso; - Troca de mensagem entre computadores numa rede; - Navegao entre pginas Web;

1 FIFO (FIRST IN FIRST OUT)

O primeiro elemento que entrou o primeiro a sair. Cada elemento armazena um ou vrios dados (estrutura homognea ou heterognea) e um ponteiro para o prximo elemento, permitindo o encadeamento e a linearidade. Temos as seguintes operaes nesta estrutura: inserir na fila, consultar toda a fila, remover e esvazi-la. Nas filas as remoes acontecem no ponteiro INICIO e as inseres no ponteiro FIM. Analogicamente, imaginemos uma fila de espera de um banco qualquer, todo cliente que chega posicionado ao final da fila, e o primeiro a ser atendido sempre ser o primeiro desta fila de espera.

[pic] Figura 1 esquema de funcionamento de uma fila FIFO Fonte: ASCENSIO, Estrutura de Dados, pg. 191 e 192

2 FILO (FIRST IN LAST OUT)

O ltimo elemento que entrou o primeiro a sair. Cada elemento armazena um ou vrios dados (estrutura homognea ou heterognea) e um ponteiro para o prximo elemento, permitindo o encadeamento e a forma linear. Temos as seguintes operaes nesta estrutura: inserir na pilha, consultar toda a pilha, remover e esvazi-la. Nas pilhas as remoes e inseres acontecem num nico ponto, o TOPO. Analogicamente, pensemos numa pilha de pratos, onde um novo prato ser sempre colocado no topo da pilha; para retirarmos um prato, escolhemos o do topo, ou seja, o ltimo prato inserido. [pic] Figura 2 esquema de funcionamento de uma pilha FILO

Fonte: ASCENSIO, Estrutura de Dados, pg. 185

3 TIPOS DE ALOCAO

SIMPLESMENTE ENCADEADAS Uma lista simplesmente encadeada uma sucesso de ns onde cada n aponta para o prximo n da lista. O n que possuir o valor NULL no ponteiro para prximo o ltimo n da lista. de extrema importncia que seja mantida uma referncia para o primeiro n da lista, caso esta referncia for NULL, significa que a lista esta vazia. [pic] Figura 3 alocao simplesmente encadeada

DUPLAMENTE ENCADEADAS So listas que, alm de cada elemento indicar o elemento seguinte, tambm indicam aquele que o antecede, ou melhor, cada elemento ligado ao seu sucessor e ao seu predecessor. [pic] Figura 4 alocao duplamente encadeada

H uma questo que envolve desempenho, flexibilidade e requisitos de alocao de memria, relacionados com a opo que fazemos por uma ou outra estrutura de dados. No caso da lista simplesmente encadeada, os ns so menores (um ponteiro por dado armazenado), mas a flexibilidade de deslocamento entre os ns menor (s em um sentido) e mesmo o desempenho pode ser menor em operaes como a insero no final da lista. J as listas duplamente encadeadas iro ocupar mais memria (dois ponteiros para cada dado), mas so muito mais flexveis e podem ser mais eficientes na em certas operaes (por exemplo, na insero/remoo do final da lista). Portanto, como atualmente a abundncia de recursos computacionais de hardware (memria) no um gargalo para desenvolvedores, considero a alocao duplamente encadeada a mais recomendada.

2 TRANSAES EM BANCO DE DADOS ACID

Todo sistema gerenciador de banco de dados (SGBD) aplica em seu funcionamento o conceito denominado ACID, um acrnimo que representa as quatro propriedades fundamentais. Todas as propriedades devem ser aplicadas em sua plenitude, seno o SGBD no poder ser considerado um sistema de verdade.

ATOMICIDADE: dizemos que uma transao atmica porque no divisvel em partes, ou seja, deve ser realizada por inteiro ou ento abortada. Por exemplo, numa transao com operaes de alterao de dados, devemos cumprir todas ou no realizamos nenhuma delas.

CONSISTNCIA: no incio de uma transao, os dados armazenados esto todos consistentes; ao concluir a transao, os dados devem permanecer consistentes, ou seja, as regras de negcio devem continuar a sendo executadas e cumpridas.

ISOLAMENTO: tambm conhecido como integridade de transaes, estas devem ser isoladas/ntegras, ou seja, duas ou mais transaes concorrentes devem seguir de maneira isolada uma com as outras e as regras de negcio devem ser cumpridas durante a realizao das operaes na transao independentemente de existirem mais transaes de maneira simultnea e, ao final delas, esta integridade deve permanecer.

DURABILIDADE: depois de realizada e confirmada, uma transao deve ser durvel, ou seja, no pode desaparecer do banco sem que uma outra transao realize esta operao.

3 BANCO DE DADOS RELACIONAIS VERSUS PROGRAMAO ORIENTADA A OBJETOS

Os sistemas de banco de dados relacionais e as linguagens orientadas a objetos consolidaramse no mercado h muito tempo. Dois paradigmas diferentes, mas que tm que conviver juntos,

criando assim esta incompatibilidade semntica entre os paradigmas objeto/relacional. Esta incompatibilidade pode ser solucionada usando banco de dados orientado a objetos, j disponveis atualmente, no entanto, estes ainda no so to eficientes e difundidos quanto os bancos de dados relacionais. Portanto, para que coexistam em um ambiente de desenvolvimento foi elaborada a ORM.

1 ORM (Object Relational Mapper)

Tcnica de desenvolvimento utilizada para reduzir a impedncia da programao orientada a objetos utilizando bancos de dados relacionais. As tabelas do banco de dados so representadas atravs de classes e os registros de cada tabela so representados como instncias das classes correspondentes.

Com esta tcnica, o programador no precisa se preocupar com os comandos em linguagem SQL; ele ir usar uma interface de programao simples que faz todo o trabalho de persistncia. No necessria uma correspondncia direta entre as tabelas de dados e as classes do programa. A relao entre as tabelas onde originam os dados e o objeto que os disponibiliza configurada pelo programador, isolando o cdigo do programa das alteraes organizao dos dados nas tabelas do banco de dados.

2 HIBERNATE

O Hibernate foi criado por desenvolvedores Java espalhados ao redor do mundo, e liderado por Gavin King. um software livre de cdigo aberto distribudo com a licena LGPL. Consiste em um framework para o mapeamento objeto-relacional escrito na linguagem Java. Este programa facilita o mapeamento dos atributos entre uma base tradicional de dados relacionais e o modelo objeto de uma aplicao, mediante o uso de arquivos (XML) para estabelecer esta relao.

Seu objetivo diminuir a complexidade entre os programas Java, baseado no modelo orientado a objeto, que precisam trabalhar com um banco de dados do modelo relacional (presente na maioria dos SGBDs). Em especial, no desenvolvimento de consultas e atualizaes dos dados.

Sua principal caracterstica a transformao das classes em Java para tabelas de dados (e dos tipos de dados Java para os da SQL). O framework gera as chamadas SQL e libera o desenvolvedor do trabalho manual da converso dos dados resultante, mantendo o programa portvel para quaisquer bancos de dados SQL, porm causando um pequeno aumento no tempo de execuo.

4 HERANA E POLIFORMISMO

HERANA: um princpio de orientao a objetos, que permite que classes compartilhem atributos e mtodos, atravs de "heranas". Ela usada na inteno de reaproveitar cdigo ou comportamento generalizado ou especializar operaes ou atributos. O conceito de herana de vrias classes conhecido como herana mltipla.

POLIFORMISMO: tambm oriunda da orientao a objetos, permite que referncias de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, possvel tratar vrios tipos de maneira homognea (atravs da interface do tipo mais abstrato). Caracteriza-se por duas ou mais classes distintas e tem mtodos de mesmo nome, de forma que uma funo possa utilizar um objeto de qualquer uma das classes polimrficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.

Uma das formas de implementar o polimorfismo atravs de uma classe abstrata, cujos mtodos so declarados mas no so definidos, e atravs de classes que herdam os mtodos desta classe abstrata. [pic] Figura 5 diagrama de classes herana e poliformismo

Analisando o diagrama acima, temos uma superclasse "Mamfero", e as subclasses "Cachorro", "Macaco", "Homem", que "herdam" de "Mamfero". Podemos dizer que Cachorro " um" Mamfero, Macaco " um" Mamfero, Homem " um" Mamfero. As caractersticas definidas na classe Mamferos estaro presentes nas classes que herdam dela. Todos os Mamferos tero Mamas e Pelos. Isto Herana. Alm disto, cada classe que herda de Mamfero poder ter seus prprios atributos que se somaro aos da superclasse. E note que a classe Homem contm uma definio do atributo

Pelos. Dando uma razo lgica para nosso exemplo, isto porque o Homem tem pelos diferentes dos outros mamferos.

Podemos, portanto redefinir na subclasse um atributo que j estava presente na superclasse, dando a ele caractersticas diferentes. Isto Polimorfismo: o mesmo mtodo ou atributo pode ter funcionamento diferente em classes diferentes, mesmo que uma herde da outra.

CONCLUSO

Cheguei concluso neste trabalho o quo importantes so as estruturas de dados lineares e as principais diferenas entre suas diversas formas conceituais.

Discorri sobre as propriedades ACID e sua importncia para os SGBDs. Abordei a tcnica ORM que viabiliza o casamento entre banco de dados relacionais e programao orientada a objetos, dois consagrados paradigmas da computao e apresentamos uma das vrias ferramentas de mercado, Hibernate.

Por ltimo, tratei dois conceitos vitais em orientao a objetos, herana e poliformismo com a ajuda dos diagramas de classes.

Foi bastante gratificante poder transformar em um documento prtico e objetivo as teorias e todos os conceitos ministrados at este perodo do curso e ter a certeza de que os mesmos nos ajudaro de forma prtica em nossas carreiras futuramente.

REFERNCIAS

ASCENSIO, Ana Fernanda Gomes. Estrutura de Dados: algoritmos, anlise da complexidade e implementaes em Java e C/C++. So Paulo: Pearson Prentice Hall, 2010.

NISHIMURA, Roberto Yukio. Banco de Dados II: sistemas. So Paulo: Pearson Prentice Hall, 2009.

WIKIPEDIA: http://pt.wikipedia.org/wiki/Mapeamento_objeto-relacional

Orientador Pedro Pedreira: https://sites.google.com/site/orientadorpedropereira/Home/fundamentos-de-orientacao-a-objetose-uml/diagramas-de-classes

----------------------Sistema de Ensino Presencial Conectado ANLISE DE DESENVOLVIMENTO DE SISTEMAS

MAURO MARTINS LEAL

PORTFLIO INDIVIDUAL 3 SEMESTRE Listas lineares, alocaes encadeadas, ACID, ORM, banco de dados relacionais com programao orientada a objetos, herana e poliformismo.

Palmas 2012

MAURO MARTINS LEAL

PORTFLIO INDIVIDUAL 3 SEMESTRE | *+,-/01>?GHQRVW^_`Listas lineares, alocaes encadeadas, ACID, ORM, banco de dados relacionais com programao orientada a objetos, herana e poliformismo.

Trabalho apresentado s disciplinas Algoritmos e Estruturas de Dados, Anlise de Sistemas, Seminrio III, Desenvolvimento Orientado a Objetos I e Banco de Dados II da Universidade Norte do Paran - UNOPAR

Prof(s). :

Marcio Roberto Roberto Y. Nishimura

Polyanna Gomes Merris Mozer

Palmas 2012

You might also like