Trabalho Completo Portfolio 3 Semestre De Analise

Portfolio 3 Semestre De Analise

Imprimir Trabalho!
Cadastre-se - Buscar 155 000+ Trabalhos e Monografias

Categoria: Tecnologia

Enviado por: cleonisilva 19 abril 2013

Palavras: 3088 | Páginas: 13

LISTAS LINEARES, ALOCAÇÃO SIMPLES E DUPLAMENTE ENCADEADA,

PROPRIEDADES ACID (BANCO DE DADOS), ORIENTAÇÃO A OBJETOS E

POLIMORFISMO

1

Trabalho apresentado

Professores:

2

SUMÁRIO

1. Introdução ............................................................................................................. 4

2. Desenvolvimento................................................................................................... 4

2.1. Listas Lineares ..................................................................................................4

2.1.1. FIFO .................................................................................................................4

2.1.2. FILO ................................................................................................................. 5

2.2. Tipos de Alocação............................................................................................. 5

2.2.1. Simplesmente encadeada ........................................................................... 5

2.2.2. Duplamente encadeada ..................................................................................6

2.2. Tipos de Alocação............................................................................................. 6

2.3. Transações em banco de dados – ACID ..........................................................6

2.3.1. Atomicidade......................................................................................................7

2.3.2. Consistência.....................................................................................................7

2.3.1. Isolamento.........................................................................................................7

2.3.1. Durabilidade .....................................................................................................7

2.4. Banco de dados relacionais...............................................................................7

2.4.1. ORN (Object Relational Mapper) ....................................................................7

2.4.1.1. Hibernate................................................................................................8

2.4.1.2. Herança e Poliformismo.......................................................................8

3. Conclusão .............................................................................................................9

4. Referências ...........................................................................................................9

3

1. INTRODUÇÃO

Este trabalho apresenta uma produção textual interdisciplinar com

o objetivo de explanar os conteúdos estudados nesse semestre com conceitos,

técnicas e práticas das listas lineares (FIFO e FILO), alocações simplesmente

encadeadas e duplamente encadeadas, conceitos de ACID de uma transação,

ORM, herança e poliformismo, bem como a utilização de banco de dados relacional

com a programação orientada a objetos. Busquei com esse trabalho entender e

aprender mais sobre cada disciplina estudada no semestre corrente.

Utilizando-se dos conhecimentos adquiridos nas aulas e durante o

trabalho , busca-se instrumentos para otimizar o aprendizado.

2. DESENVOLVIMENTO

2.1. LISTAS LINEARES

Lista linear é a estrutura que permite representar um conjunto de dados

afins, de forma a preservar a relação de ordem linear de seus elementos. É o

conjunto de n ≥ 0 nós X1, X2, ... Xn, organizados estruturalmente de forma a refletir

as posições relativas dos mesmos; se n > 0, então X1 é o primeiro nó; para 1 < k <

n, o nó Xk é precedido pelo nó Xk-1 e seguido do Xk+1; temos também Xn como

último nó e quando n = 0, diz-se que a lista é vazia.

Alguns exemplos de listas lineares no nosso cotidiano são uma certa quantidade de

pessoas esperando ônibus, produtos em estoque, fila de banco, fila de alunos, entre

outras.

As listas lineares em sistemas informatizados são exemplos troca

de mensagens em uma rede, navegação nas diversas páginas de internet,

documentos em uma fila de impressão de documentos, etc.

2.1.1. FIFO (“FIRST IN FIRST OUT”)

O primeiro elemento que entrou é o primeiro a sair. Cada elemento

4

armazena um ou vários dados (estrutura homogênea ou heterogênea) e um ponteiro

para o próximo elemento, permitindo o encadeamento e a linearidade. Temos as

seguintes operações nesta estrutura: inserir na fila, consultar toda a fila, remover e

esvaziá-la. Nas filas as remoções acontecem no ponteiro INICIO e as inserções 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.

Exemplo de uma fila FIFO:

2.1.2. FILO (“FIRST IN LAST OUT”)

O último elemento que entrou é o primeiro a sair. Cada elemento

armazena um ou vários dados (estrutura homogênea ou heterogênea) e um ponteiro

para o próximo elemento, permitindo o encadeamento e a forma linear. Temos as

seguintes operações nesta estrutura: inserir na pilha, consultar toda a pilha, remover

e esvaziá-la. Nas pilhas as remoções e inserções 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.

2.2 TIPOS DE ALOCAÇÃO

2.2.1. SIMPLESMENTE ENCADEADAS

Uma lista simplesmente encadeada é uma sucessão de nós onde cada nó

aponta para o próximo nó da lista. O nó que possuir o valor NULL no ponteiro para

próximo é o último nó da lista. É de extrema importância que seja mantida uma

referência para o primeiro nó da lista, caso esta referência for NULL, significa que a

lista esta vazia.

Lista simplesmente encadeada:

5

2.2.2. DUPLAMENTE ENCADEADAS

São listas que, além de cada elemento indicar o elemento seguinte,

também indicam aquele que o antecede, ou melhor, cada elemento é ligado ao seu

sucessor e ao seu predecessor.

alocação duplamente encadeada;

Há uma questão que envolve desempenho, flexibilidade e requisitos

de alocação de memória, relacionados com a opção que fazemos por uma ou outra

estrutura de dados. No caso da lista simplesmente encadeada, os nós são menores

(um ponteiro por dado armazenado), mas a flexibilidade de deslocamento entre os

nós é menor (só em um sentido) e mesmo o desempenho pode ser menor em

operações como a inserção no final da lista. Já as listas duplamente encadeadas

irão ocupar mais memória (dois ponteiros para cada dado), mas são muito mais

flexíveis e podem ser mais eficientes na em certas operações (por exemplo, na

inserção/remoção do final da lista).

A utilização da lista duplamente encadeada é muito melhor, pois

existe em cada nó, a informação do elemento posterior e o anterior tornado com isso

possível fazer o caminho inverso se for o caso.

2.3. TRANSAÇÕES EM BANCO DE DADOS – ACID

O ACID (acrônimo de Atomicidade, Consistência, Isolamento e

Durabilidade), é um conceito utilizado em ciência da computação para caracterizar

uma transação, entre outras coisas.

Todo sistema gerenciador de banco de dados (SGBD) aplica em seu

funcionamento o conceito denominado ACID, um acrônimo que representa as quatro

propriedades fundamentais. Todas as propriedades devem ser aplicadas em sua

plenitude, senão o SGBD não poderá ser considerado um sistema de verdade. As

6

propriedades são:

2.3.1. ATOMICIDADE: dizemos que uma transação é atômica porque não é

divisível em partes, ou seja, deve ser realizada por inteiro ou então abortada. Por

exemplo, numa transação com operações de alteração de dados, devemos cumprir

todas ou não realizamos nenhuma delas.

2.3.2. CONSISTÊNCIA: no início de uma transação, os dados armazenados

estão todos consistentes; ao concluir a transação, os dados devem permanecer

consistentes, ou seja, as regras de negócio devem continuar a sendo executadas e

cumpridas.

2.3.3. ISOLAMENTO: é também conhecido como integridade de transações,

estas devem ser isoladas/íntegras, ou seja, duas ou mais transações concorrentes

devem seguir de maneira isolada uma com as outras e as regras de negócio devem

ser cumpridas durante a realização das operações na transação independentemente

de existirem mais transações de maneira simultânea e, ao final delas, esta

integridade deve permanecer.

2.3.4. DURABILIDADE: depois de realizada e confirmada, uma transação

deve ser durável, ou seja, não pode desaparecer do banco sem que uma outra

transação realize esta operação.

2.4. BANCO DE DADOS RELACIONAIS

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 têm que conviver juntos, criando assim esta incompatibilidade

semântica entre os paradigmas objeto/relacional. Esta incompatibilidade pode ser

solucionada usando banco de dados orientado a objetos, já disponíveis atualmente,

no entanto, estes ainda não são tão eficientes e difundidos quanto os bancos de

dados relacionais. Portanto, para que coexistam em um ambiente de

desenvolvimento foi elaborada a ORM.

2.4.1. ORM (Object Relational Mapper)

Técnica de desenvolvimento utilizada para reduzir a impedância da

7

programação orientada a objetos utilizando bancos de dados relacionais. As tabelas

do banco de dados são representadas através de classes e os registros de cada

tabela são representados como instâncias das classes correspondentes.

Com esta técnica, o programador não precisa se preocupar com os

comandos em linguagem SQL; ele irá usar uma interface de programação simples

que faz todo o trabalho de persistência. Não é necessária uma correspondência

direta entre as tabelas de dados e as classes do programa. A relação entre as

tabelas onde originam os dados e o objeto que os disponibiliza é configurada pelo

programador, isolando o código do programa das alterações à organização dos

dados nas tabelas do banco de dados.

2.4.1.1. HIBERNATE

O Hibernate foi criado por desenvolvedores Java espalhados ao redor do mundo, e

liderado por Gavin King. É um software livre de código aberto distribuído com a

licença 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 aplicação,

mediante o uso de arquivos (XML) para estabelecer esta relação.

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 atualizações dos dados.

Sua principal característica é a transformação 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 conversão dos

dados resultante, mantendo o programa portável para quaisquer bancos de dados

SQL, porém causando um pequeno aumento no tempo de execução.

2.4.1.2. HERANÇA E POLIFORMISMO

HERANÇA: é um princípio de orientação a objetos, que permite que

classes compartilhem atributos e métodos, através de "heranças". Ela é usada na

intenção de reaproveitar código ou comportamento generalizado ou especializar

operações ou atributos. O conceito de herança de várias classes é conhecido como

8

herança múltipla.

POLIFORMISMO: também oriunda da orientação a objetos, permite

que referências de tipos de classes mais abstratas representem o comportamento

das classes concretas que referenciam. Assim, é possível tratar vários tipos de

maneira homogênea (através da interface do tipo mais abstrato). Caracteriza-se por

duas ou mais classes distintas e tem métodos de mesmo nome, de forma que uma

função possa utilizar um objeto de qualquer uma das classes polimórficas, sem

necessidade de tratar de forma diferenciada conforme a classe do objeto.

Uma das formas de implementar o polimorfismo é através de uma classe

abstrata, cujos métodos são declarados mas não são definidos, e através de classes

que herdam os métodos desta classe abstrata.

3. CONCLUSÃO

Consegui entender mais nesse trabalho sobre a importância das

estruturas de dados lineares e as principais diferenças entre suas diversas formas

conceituais.

um bom projeto não pode nascer diretamente nas tabelas. Ele deve passar por um

processo de organização, , uma transformação em seus diversos formatos

conceituais e lógico até a sua etapa final.

Poder transformar em um documento prático e objetivo as teorias e

todos os conteúdos vistos até agora, com certeza nos ajudarão de forma prática em

nossas carreiras futuramente.

4. REFERÊNCIAS

9

LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto

orientados a objetos e ao desenvolvimento iterativo. 3. ed. Porto Alegre: Bookman,

2008.

SOUZA NETO, Plácido A. Análise de sistemas: fases de desenvolvimento de

software. Disponível em:

<http://www.cefetrn.br/~placido/disciplina/mossoro/analise/material/aula1.pdf>.

Acesso em: ago. 2012.

http://www.rnp.br/newsgen/0005/qos_voip1.html-Acesso em 12/10/2012

http://www.ebah.com.br/content/ABAAABVUcAE/estrutura-dados-Acesso 12/10/12

http://dainf.ct.utfpr.edu.br/~maziero/doku.php/so:biblioteca_de_filas-Acesso

12/10/2012

http://pt.wikipedia.org/wiki/ACID-Acesso12/10/2012

10