trabalho individual 3º semestre - unopar

22
SISTEMA DE ENSINO PRESENCIAL CONECTADO ANÁLISE E DESENVOLVIMENTO DE SISTEMAS WILLAMY CHARLLES PEIXOTO OLIVEIRA ATIVIDADE INTERDISCIPLINAR INDIVIDUAL 3º SEMESTRE: Estrutua de Dados do tipo Pilha e Fila e seus Encadeamentos e suas Vantagens, Banco de Dados e Conceitos ACID e Programação OO, Significado de ORM e Diagrama de Atividade Juazeiro 2012

Upload: charlles-peixoto

Post on 05-Aug-2015

304 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Trabalho Individual 3º semestre - UNOPAR

SISTEMA DE ENSINO PRESENCIAL CONECTADO ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

WILLAMY CHARLLES PEIXOTO OLIVEIRA ATIVIDADE INTERDISCIPLINAR INDIVIDUAL 3º SEMESTRE:

Estrutua de Dados do tipo Pilha e Fila e seus Encadeamentos e suas Vantagens, Banco de Dados e Conceitos ACID e Programação

OO, Significado de ORM e Diagrama de Atividade

Juazeiro 2012

Page 2: Trabalho Individual 3º semestre - UNOPAR

WILLAMY CHARLLES PEIXOTO OLIVEIRA ATIVIDADE INTERDISCIPLINAR INDIVIDUAL 3º SEMESTRE:

Estrutua de Dados do tipo Pilha e Fila e seus Encadeamentos e suas Vantagens, Banco de Dados e Conceitos ACID e Programação

a OO, Significado de ORM e Diagrama de Atividade

Trabalho de Conclusão da Unidade, apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média bimestral nas atividades interdisciplinares do 3º Semestre.

Orientadores: Professora Polyanna P. G. Fabris Professor Anderson Macedo

Professor Roberto Nishimura Professor Merris Mozer

Juazeiro 2012

Page 3: Trabalho Individual 3º semestre - UNOPAR

SUM�RIO 1 – RESUMO.................................................................................................................3

2 – INTRODUÇÃO.........................................................................................................4

3 – OBJETIVO...............................................................................................................5

4 – DESENVOLVIMENTO.............................................................................................6

4.1 – ESTRUTURA DE DADOS...............................................................................6

4.2 – BANCO DE DADOS E CONCEITOS ACID...................................................12

4.3 – BANCO DE DADOS E OO(ORIENTAÇÃO A OBJETO)................................13

4.4 – ORM (OBJECT RELATIONAL MAPPING).....................................................15

4.5 – FERRAMENTA PARA FAZER ORM..............................................................17

4.6 – DIAGRAMA DE ATIVIDADE..........................................................................18

5 – CONCLUSÃO.......................................................................................................20 REFERÊNCIAS...........................................................................................................21

Page 4: Trabalho Individual 3º semestre - UNOPAR

3 1 – RESUMO

Este trabalho tem a finalidade de apresentar técnicas de

desenvolvimento de um sistema da informação, bem definido e a criação de um banco

de dados eficiente, sem redudância de dados. Apresentando outras técnicas de

aprimoramento, como diagramas e ferramentas de Banco de Dados(ORM).

Page 5: Trabalho Individual 3º semestre - UNOPAR

4 2– INTRODUÇÃO

Apresentarei conceitos essenciais para desenvolver um sistema com

eficiência e qualidade atendendo as necessidades do cliente e agilizando o processo

da criação do mesmo. Abordarei recursos como: Organização de dados, ferramentas

de Banco de Dados(ORM), bem como os conceitos de modelos de diagramas de

atividades e um banco de dados mais ágil.

Page 6: Trabalho Individual 3º semestre - UNOPAR

��

3 – OBJETIVO Familiarizar o cliente com alguns dos conceitos básicos de programação e funcionalidade de um banco de dados bem organizado.

Page 7: Trabalho Individual 3º semestre - UNOPAR

��

4 - DESENVOLVIMENTO

4.1 – ESTRUTURA DE DADOS

Pilhas e Filas

Armazenamento seqüencial: Ideal quando inserções e remoções não acarretam

movimentação de nós, o que ocorre se os elementos a serem inseridos e removidos

estão em posições seqüenciais, como a primeira ou a última posição. Pilhas e filas

satisfazem tais condições.

Pilhas

Tipo Abstrato de dados com a seguinte característica:

O último elemento a ser inserido é o primeiro a ser retirado/ removido

(LIFO – Last in First Out)

Analogia: pilha de pratos, livros, etc.

Utiliza-se indicadores especiais, denominados ponteiros, para o acesso a posição

selecionadas. No caso da pilha, usa-se apenas um ponteiro, o ponteiro topo, pois as

inserções e remoções são executadas na mesma extremidade da lista.

Imagens Ilustrativas:

Page 8: Trabalho Individual 3º semestre - UNOPAR

��

Filas

Fila é uma estrutura de dados onde as inserções são realizadas no final e as

remoções no início.

Filas exigem uma implementação mais elaborada. São necessários dois ponteiros:

início da fila (I) e retaguarda (R). Isso porque na fila as inserções são feitas sempre no

final da fila e as remoções sempre no início da fila. Para a inserção de um elemento,

move-se o ponteiro R; para a retirada, move-se o ponteiro I. A fila vazia é

representada por I = R = 0.

Imagem Ilustrativa:

ALOCAÇÃO DINÂMICA - LISTAS SIMPLESMENTE ENCADEADAS

As estruturas com alocação dinâmica possuem um componente importante que

permite “unir” cada “pedaço” de memória que for sendo alocado durante a execução

do programa. Este componente é o PONTEIRO, que permite encadear diferentes

blocos de memória, formando o que denominamos de estruturas de dados

Page 9: Trabalho Individual 3º semestre - UNOPAR

��

encadeadas, onde destacam-se as estruturas dos seguintes tipos: Listas

Simplesmente Encadeadas eListas Duplamente Encadeadas.

Estas estruturas irão nos permitir implementar inclusive as estruturas

anteriormente estudadas, ou seja, PILHAS, FILAS e DEQUES podem ser

implementados utilizando como base para o armazenamento dos dados uma estrutura

encadeada do tipo LISTA ENCADEADA.

Abaixo apresentamos um esquema das principais estruturas encadeadas

citadas acima:

1) Listas Simplesmente Encadeadas: Os nodos possuem apenas 1 (um) elo de

encadeamento. Só pode ser percorrida em um sentido.

Esquema:

2) Listas Duplamente Encadeadas: Os nodos possuem 2 (dois) elos de

encadeamento, possibilitando que a lista seja percorrida nos dois sentidos.

Esquema:

LISTAS SIMPLESMENTE ENCADEADAS

Uma lista simplesmente encadeada deverá ser constituída obrigatoriamente dos

seguintes elementos:

- NODO: Registro de dados contendo um (ou mais) campo(s) para armazenar os

dados e um campo que será do tipo “ponteiro para o próprio nodo”

(elo/encadeamento);

- INÍCIO: Ponteiro que irá preservar (apontar) o nodo inicial da Lista Encadeada. Este

Page 10: Trabalho Individual 3º semestre - UNOPAR

��

ponteiro é indispensável para que seja possível localizar os dados da lista

simplesmente encadeada na memória. Se o início da lista for perdido, toda a lista será

perdida!

Além destes elementos obrigatórios, poderemos ainda ter um elemento

opcional que é o ponteiro indicando o FINAL da lista (aponta para o último nodo da

lista encadeada). O ponteiro para o final da lista pode ser particularmente útil se

estivermos interessados em inserir novos nodos no final da lista, sem ter que

obrigatoriamente percorrer toda a lista para alcançar o seu final.

De acordo com o indicado acima, podemos facilmente identificar que existem

diferentes maneiras de inserir e remover dados de uma lista encadeada, onde o fato

da lista ser simplesmente ou duplamente encadeada vai simplificar e/ou dificultar

algumas destas operações. Os tipos básicos de operações de inserção em listas

encadeadas são:

1) Inserção no início da lista: Os nodos são sempre alocados (NEW) e depois

inseridos antes do primeiro nodo da lista encadeada, tornando-se assim o novo

início da lista. Exemplo:

2) Inserção no final da lista: Os nodos são encadeados após o último nodo da lista,

ou seja, o nodo inserido torna-se o último nodo da lista. Exemplo:

Page 11: Trabalho Individual 3º semestre - UNOPAR

���

3) Inserção ordenada: Os nodos são inseridos respeitando uma regra de ordenação

previamente estabelecida, por exemplo, em ordem crescente de um campo numérico.

Exemplo:

4) Inserção especial: rotinas para implementar inserção em Pilha, Fila ou Deque.

Rotinas baseada nas rotinas acima de insere/remove no início/fim.

Além das rotinas de inserção, também iremos identificar que existem diferentes

maneiras de remover dados de uma lista encadeada. Lembre-se que na remoção de

dados de uma lista é muito importante que a memória seja liberada (DISPOSE) de

modo a poder ser aproveitada por outras aplicações e/ou pedidos de alocação de

memória. Os tipos básicos de operações de remoção em listas encadeadas são:

Page 12: Trabalho Individual 3º semestre - UNOPAR

���

1) Remoção no início da lista: O primeiro nodo da lista encadeada nodos é sempre o

que será removido, onde o nodo seguinte a ele torna-se assim o novo início da lista.

2) Remoção do final da lista: O último nodo da lista encadeada é removido, onde o

penúltimo nodo torna-se o último após a remoção.

3) Remoção de um nodo específico indicado por um ponteiro: Neste caso, é

necessário que o nodo tenha sido previamente localizado e que já tenhamos um

ponteiro apontando para o nodo que se deseja remover. A remoção deste nodo

implica em criar um elo de ligação entre seu anterior e o próximo nodo (caso existam).

4) Remoção de um nodo contendo um determinado dado: Este tipo de remoção

implica em primeiramente localizar o dado (a sua primeira ocorrência, ou, repetir esta

operação para todas as ocorrências deste mesmo dado presentes na lista) e em

seguida realizar a remoção deste nodo, de forma análoga a remoção de um nodo

específico indicado por um ponteiro (vide item 3).

5) Remoção de todos os nodos da lista: Todos os nodos da lista devem ser

devidamente removidos e a memória ocupada por eles liberada, e por fim o ponteiro

para o início da lista deve ser inicializado novamente (NIL). Lembre-se que não basta

apenas atribuir NIL ao ponteiro de início de lista, devemos usar o comando DISPOSE

para realmente liberar a memória alocada.

Busca em uma lista simplismente encadeada:

Um parâmetro X retorna apontando para o elemento procurado e, ant para o

elemento anterior ao procurado; se o elemento não for encontrado, X aponta para null

e ant indica o elemento anterior ao último procurado.

Busca em uma lista duplamente encadeada ordenada:

O algoritmo de busca em tabelas ordenadas são muito simples. Na busca, a função

retorna indicando o nó procurado ou, se este não foi encontrado, o nó que seria seu

consecutivo.

Page 13: Trabalho Individual 3º semestre - UNOPAR

��

4.2 – BANCO DE DADOS E CONCEITOS ACID

Várias examinadoras elaboram perguntas sobre as propriedades ACID de um banco

de dados, então vale a pena revisá-las. A minha fonte é o livro “Sistemas de Bancos

de Dados”, de Ramez Elsmari e Shamkant Navathe, 4a edição, capítulo 17.

Atomicidade – é um tudo ou nada: se houver alguma falha durante a

execução, a transação é desfeita. Ou, nas palavras dos autores, “uma

transação é uma unidade atômica de processamento; ou ela será executada em

sua totalidade ou não será de modo algum”. O subsistema de restauração de

transações do SGBD é o responsável pela atomicidade.

Preservação de consistência – imagine que seja tirada umafotografia dos

dados de um banco de dados. Este é o estado do BD. Após a fotografia, é feita

uma transação neste BD e retira-se uma nova foto. Se na primeira o BD estava

consistente, então na segunda ele tem que estar também.

Citando a bibliografia, “uma transação será preservadora de consistência se a

sua execução completa fizer o banco de dados passar de um estado

consistente para outro. (…) Um estado do banco de dados é a coleção de todos

os itens de dados armazenados no banco de dados em determinado momento.”

A responsabilidade aqui é dupla, sendo tanto do programador quanto do

módulo do SGBD que garante as restrições de integridade.

Isolamento – é o cada um por si: “uma transação deve ser executada como se

estivesse isolada das demais. Isto é, a execução de uma transação não deve

sofrer interferência de quaisquer outras transações concorrentes. (…) É imposto

pelo subsistema de controle de concorrência do SGBD.” O chamado nível de

isolamento verdadeiro (nível 3) não permite atualizações perdidas, leitura de

sujeira nem leituras repetíveis.

Durabilidade ou permanência – fez, está feito – “as mudanças aplicadas ao

banco de dados por uma transação efetivada devem persistir no banco de

dados. Essas mudanças não devem ser perdidas em razão de uma falha”.

Responsabilidade: subsistema de restauração do SGBD.

Page 14: Trabalho Individual 3º semestre - UNOPAR

��

4.3 – BANCO DE DADOS E OO(ORIENTAÇÃO A OBJETO)

Um banco de dados orientado a objetos é um banco de dados em que cada

informação é armazenada na forma de objetos, ou seja, utiliza a Estrutura de

dados denominada Orientação a objetos, a qual permeia as linguagens mais

modernas. O gerenciador do banco de dados para um orientado a objeto é

referenciado por vários como ODBMS ou OODBMS.

Existem dois fatores principais que levam a adoção da tecnologia de banco de dados

orientados a objetos. A primeira, é que em umbanco de dados relacional se torna difícil

de manipular com dados complexos (esta dificuldade se dá pois o modelo relacional

se baseia menos no senso comum relativo ao modelo de dados necessário ao projeto

e mais nas contingências práticas do armazenamento eletrônico). Segundo, os dados

são geralmente manipulados pela aplicação escrita usando linguagens de

programação orientada a objetos, como C++, C#, Java,Python ou Delphi (Object

Pascal), e o código precisa ser traduzido entre a representação do dado e as tuplas da

tabela relacional, o que além de ser uma operação tediosa de ser escrita, consome

tempo. Esta perda entre os modelos usados para representar a informação na

aplicação e no banco de dados é também chamada de “perda por resistência”.

� Permite especificar e utilizar tipos abstratos de dados(TADs) da mesma forma

que os tipos de dados pré-definidos

– TADs são tipos de dados definidos pelo usuário que encapsulam

comportamento e estrutura interna (atributos)

� A tabela convencional é estendida para permitir a referencia de objetos

(referência de tipos), TADs e valores alfanuméricos como domínio de colunas

� Utiliza referências para representar conexões inter-objetos tornando as

consultas baseadas em caminhos de referência mais compactas do que as

consultas feitas com junção

� Herança é implementada organizando todos os tipos em hierarquias

� Utiliza os construtores set, list, multiset ou array para organizar coleções de

objetos

Page 15: Trabalho Individual 3º semestre - UNOPAR

���

• Nova Funcionalidade

– Aumenta indefinidamente o conjunto de tipos e funções fornecidas pelo

SGBD

• Desenvolvimento de aplicações simplificado

– Reuso de código

• Consistência

– Permite a definição de padrões, código reusável por todas as aplicações

Page 16: Trabalho Individual 3º semestre - UNOPAR

���

4.4 – ORM (OBJECT RELATIONAL MAPPING

ORM (Object Relational Mapper) é uma técnica de mapeamento de objeto relacional que permite fazer uma relação dos objetos com os dados que os mesmos representam. Ultimamente tem sido muito utilizada e vem crescendo bastante nos úttimos anos. Este crescimento, tem se dado principalmente pelo fato de muitos desenvolvedores não se sentirem a vontade de escrever código SQL e pela produtividade que esta técnica nos proporciona. Existem ótimos ORM´s como Hibernate, NHibernate, Entity Framework e etc.

Tudo começa como mostrado na figura acima, existem 2 mundos: o relacional e o orinetado a objetos, no mundo relacional prevalecem princípios matemáticos 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 não como fazer. Já no mundo orientado a objetos, trabalhamos com classes, métodos ou seja, trabalhamos fundamentados na engenharia de software e seus princípios 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.

Page 17: Trabalho Individual 3º semestre - UNOPAR

���

A figura acima, nos faz ter uma ideia de como o ORM trabalha. Ele faz o mapeamento da sua classe para o anco de dados e cada ORM tem suas particularidades, para gerar o SQL referente a inserção do objeto que corresponde a uma tabela no banco de dados e realizar a operação. Utilizando um ORM, também se ganha produtividade, pois deixa-se de escrever os comando SQL para deixar que o próprio ORM, faça isto por você.

Page 18: Trabalho Individual 3º semestre - UNOPAR

���

4.5 – FERRAMENTA PARA FAZER ORM

Hibernate usa documento XML ou o arquivo de propriedades para definir o mapeamento objeto / relacional. O objeto / arquivo de mapeamento relacional contém o mapeamento entre o objeto Java eo banco de dados tabela correspondente. Este exemplo ilustra como criar o ORM usando o documento XML.

Imagem Ilustrativa

Page 19: Trabalho Individual 3º semestre - UNOPAR

���

4.6 – DIAGRAMA DE ATIVIDADE

Imagem Ilustrativa - Diagrama de Atividade

1- Bifurcação: Recebe apenas uma atividade e executa mais de um atividade simultânea .

2- Merge: Recebe vários fluxos e tem apenas uma saída. 3- União: Junta duas atividades e origina apenas uma atividade. 4- Decisão: Recebe apenas uma ação e diversas saídas

��������� �

��� ��� �

������� �

��� �����

Page 20: Trabalho Individual 3º semestre - UNOPAR

���

A autorização do pagamento tem início após um pedido ter sido realizado pelo cliente. Ao mesmo tempo, a disponibilidade para cada um dos itens do pedido é verificada pelo depósito. Se a quantidade requisitada de um determinado item existe em estoque, tal quantidade é associada ao pedido, caso contrário, a quantidade do item será alterada (se houver em quantidade menor), se a quantidade em estoque for igual a zero, o item será excluído. O pedido é enviado pelo depósito ao cliente quando todos os itens estiverem associados e o pagamento estiver autorizado. O pedido será cancelado se a ordem de pagamento não tiver sido autorizada.

Vantagens Do Diagrama De Atividades

Representar as atividades que devem ser realizadas por um ator para que os objetivos

do caso de uso sejam alcançados. Sendo uma maneira fácil de ilustrar a

funcionalidade de um sistema.

Page 21: Trabalho Individual 3º semestre - UNOPAR

��

5 - CONCLUSÃO

Usando o Diagrama de Atividade, obtem-se um resultado mais claro e rápido

das funções de um sistema na implantação em uma empresa. Já na criação e

organização de um Banco de Dados bem definido, é preciso compreender melhor as

suas funcionalidades. Portanto para se desenvolver um sistema com um banco de

dados agil, é importante enteder as necessidades do cliente ou da empresa e o

objetivo a ser alcançado. Garantido um programa amigável para o usuario final.

Page 22: Trabalho Individual 3º semestre - UNOPAR

��

REFERÊNCIAS

Listas simplesmente encadeadas – Osório Germano e Silva Filho Programação 1 Estruturas de Dados – Raquel Marcia Müller � ����� � � ���� ��������acesso em 21/09/2012 Website – Fábio Oliveira http://www.profabio.com/portal/images/documentos/ED/unesul-pilha-fila.pdf acesso em 07/09/2012 Website – ORM : Object Relational Mapper http://www.devmedia.com.br/orm-object-relational-mapper/19056#ixzz29nWTEOhU acesso em 18/10/2012