Você está na página 1de 14

SISTEMA DE ENSINO PRESENCIAL CONECTADO ANLISE DE DESENVOLVIMENTO DE SISTEMAS ADSON JOS HONORI DE MELO

PORTFLIO INDIVIDUAL 3 SEMESTRE


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

Palmas 2012

ADSON JOS HONORI DE MELO

PORTFLIO INDIVIDUAL 3 SEMESTRE


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

SUMRIO 1 2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.3 INTRODUO .....................................................................................................3 DESENVOLVIMENTO .........................................................................................4 LISTAS LINEARES...........................................................................................4 FIFO (FIRST IN FIRST OUT) .....................................................................4 FILO (FIRST IN LAST OUT) .......................................................................5 TIPOS DE ALOCAO ................................................................................6 TRANSAES EM BANCO DE DADOS ACID.............................................7 BANCO DE DADOS RELACIONAIS VERSUS PROGRAMAO

ORIENTADA A OBJETOS ..........................................................................................8 2.3.1 2.3.2 2.4 3 ORM (OBJECT RELATIONAL MAPPER) .....................................................8 HIBERNATE..................................................................................................9 HERANA E POLIFORMISMO ........................................................................9 CONCLUSO ....................................................................................................12

REFERNCIAS .........................................................................................................13

1 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.

2 DESENVOLVIMENTO

2.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; Letras em uma palavra; Relao de notas dos alunos de uma turma; Itens em estoque em uma empresa; Dias da semana; Vages de um trem; Pilha de pratos; Cartas de baralho.

Exemplos de listas lineares em sistemas informatizados: Controle de documentos para impresso; Troca de mensagem entre computadores numa rede; Funes recursivas em compiladores; Mecanismo de desfazer/refazer dos editores de texto; Navegao entre pginas Web;

2.1.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.

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

2.1.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.

Figura 2 esquema de funcionamento de uma pilha FILO Fonte: ASCENSIO, Estrutura de Dados, pg. 185

2.1.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.

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.

Figura 4 alocao duplamente encadeada

H uma questo que envolve performance, 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 (1 ponteiro por dado armazenado), mas a flexibilidade de deslocamento entre os ns menor (s em um sentido) e mesmo a performance pode ser menor em operaes como a insero no final da lista. J as listas duplamente encadeadas iro ocupar mais memria (2 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.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. 2.3 BANCO DE DADOS RELACIONAIS VERSUS PROGRAMAO ORIENTADA A OBJETOS Os sistemas de banco de dados relacionais e as linguagens orientadas a objetos consolidaram-se 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. 2.3.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.3.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. 2.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

10

operaes ou atributos. O conceito de herana de vrias classes conhecido como herana mltipla.

POLIFORMISMO: tambm oriunda da orientao a obejetos, 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.

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 Mamfero, estaro presentes nas classes que herdam dela. Todos os Mamferos tero Mamas e Pelos. Isto Herana.

11

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 re-definir 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.

12

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

Discorremos sobre as propriedades ACID e sua importncia para os SGBDs. Abordamos 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, tratamos dois conceitos vitais em orientao a objetos, herana e poliformismo com a ajuda dos diagramas de classes.

Foi bastante prazeroso e gratificante poder transformar em um documento prtico e objetivo todos os conceitos ministrados no 3 perodo do curso de Anlise de Sistemas da UNOPAR e ter a certeza de que os mesmo nos ajudaro em nossas carreiras futuramente.

13

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-deorientacao-a-objetos-e-uml/diagramas-de-classes