Você está na página 1de 22

SISTEMA DE ENSINO PRESENCIAL CONECTADO

ANLISE 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 Programao
OO, Significado de ORM e Diagrama de Atividade


























Juazeiro
2012

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 Programao
a OO, Significado de ORM e Diagrama de Atividade
















Trabalho de Concluso da Unidade, apresentado
Universidade Norte do Paran - UNOPAR, como
requisito parcial para a obteno de mdia bimestral nas
atividades interdisciplinares do 3 Semestre.

Orientadores: Professora Polyanna P. G. Fabris
Professor Anderson Macedo
Professor Roberto Nishimura
Professor Merris Mozer













Juazeiro
2012




SUMRIO

1 RESUMO.................................................................................................................3

2 INTRODUO.........................................................................................................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(ORIENTAO A OBJETO)................................13

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

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

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


5 CONCLUSO.......................................................................................................20


REFERNCIAS...........................................................................................................21
3

1 RESUMO




Este trabalho tem a finalidade de apresentar tcnicas de
desenvolvimento de um sistema da informao, bem definido e a criao de um banco
de dados eficiente, sem redudncia de dados. Apresentando outras tcnicas de
aprimoramento, como diagramas e ferramentas de Banco de Dados(ORM).
4


2 INTRODUO




Apresentarei conceitos essenciais para desenvolver um sistema com
eficincia e qualidade atendendo as necessidades do cliente e agilizando o processo
da criao do mesmo. Abordarei recursos como: Organizao 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.
3

3 OBJETIVO


Familiarizar o cliente com alguns dos conceitos bsicos de programao e
funcionalidade de um banco de dados bem organizado.
















































6





4 - DESENVOLVIMENTO



4.1 ESTRUTURA DE DADOS


Pilhas e Filas
Armazenamento seqencial: Ideal quando inseres e remoes no acarretam
movimentao de ns, o que ocorre se os elementos a serem inseridos e removidos
esto em posies seqenciais, como a primeira ou a ltima posio. Pilhas e filas
satisfazem tais condies.

Pilhas
Tipo Abstrato de dados com a seguinte caracterstica:
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 posio
selecionadas. No caso da pilha, usa-se apenas um ponteiro, o ponteiro topo, pois as
inseres e remoes so executadas na mesma extremidade da lista.

Imagens Ilustrativas:
7




Filas
Fila uma estrutura de dados onde as inseres so realizadas no final e as
remoes no incio.
Filas exigem uma implementao mais elaborada. So necessrios dois ponteiros:
incio da fila (I) e retaguarda (R). Isso porque na fila as inseres so feitas sempre no
final da fila e as remoes sempre no incio da fila. Para a insero 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:




ALOCAO DINMICA - LISTAS SIMPLESMENTE ENCADEADAS

As estruturas com alocao dinmica possuem um componente importante que
permite unir cada pedao de memria que for sendo alocado durante a execuo
do programa. Este componente o PONTEIRO, que permite encadear diferentes
blocos de memria, formando o que denominamos de estruturas de dados
8

encadeadas, onde destacam-se as estruturas dos seguintes tipos: Listas
Simplesmente Encadeadas eListas Duplamente Encadeadas.
Estas estruturas iro 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 constituda 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 prprio nodo
(elo/encadeamento);
- INCIO: Ponteiro que ir preservar (apontar) o nodo inicial da Lista Encadeada. Este
9

ponteiro indispensvel para que seja possvel localizar os dados da lista
simplesmente encadeada na memria. Se o incio da lista for perdido, toda a lista ser
perdida!
Alm destes elementos obrigatrios, 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 alcanar 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 operaes. Os tipos bsicos de operaes de insero em listas
encadeadas so:

1) Insero no incio da lista: Os nodos so sempre alocados (NEW) e depois
inseridos antes do primeiro nodo da lista encadeada, tornando-se assim o novo
incio da lista. Exemplo:



2) Insero no final da lista: Os nodos so encadeados aps o ltimo nodo da lista,
ou seja, o nodo inserido torna-se o ltimo nodo da lista. Exemplo:
10



3) Insero ordenada: Os nodos so inseridos respeitando uma regra de ordenao
previamente estabelecida, por exemplo, em ordem crescente de um campo numrico.
Exemplo:


4) Insero especial: rotinas para implementar insero em Pilha, Fila ou Deque.
Rotinas baseada nas rotinas acima de insere/remove no incio/fim.

Alm das rotinas de insero, tambm iremos identificar que existem diferentes
maneiras de remover dados de uma lista encadeada. Lembre-se que na remoo de
dados de uma lista muito importante que a memria seja liberada (DISPOSE) de
modo a poder ser aproveitada por outras aplicaes e/ou pedidos de alocao de
memria. Os tipos bsicos de operaes de remoo em listas encadeadas so:


11

1) Remoo no incio 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 incio da lista.

2) Remoo do final da lista: O ltimo nodo da lista encadeada removido, onde o
penltimo nodo torna-se o ltimo aps a remoo.

3) Remoo de um nodo especfico indicado por um ponteiro: Neste caso,
necessrio que o nodo tenha sido previamente localizado e que j tenhamos um
ponteiro apontando para o nodo que se deseja remover. A remoo deste nodo
implica em criar um elo de ligao entre seu anterior e o prximo nodo (caso existam).

4) Remoo de um nodo contendo um determinado dado: Este tipo de remoo
implica em primeiramente localizar o dado (a sua primeira ocorrncia, ou, repetir esta
operao para todas as ocorrncias deste mesmo dado presentes na lista) e em
seguida realizar a remoo deste nodo, de forma anloga a remoo de um nodo
especfico indicado por um ponteiro (vide item 3).

5) Remoo de todos os nodos da lista: Todos os nodos da lista devem ser
devidamente removidos e a memria ocupada por eles liberada, e por fim o ponteiro
para o incio da lista deve ser inicializado novamente (NIL). Lembre-se que no basta
apenas atribuir NIL ao ponteiro de incio de lista, devemos usar o comando DISPOSE
para realmente liberar a memria alocada.

Busca em uma lista simplismente encadeada:
Um parmetro X retorna apontando para o elemento procurado e, ant para o
elemento anterior ao procurado; se o elemento no 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 so muito simples. Na busca, a funo
retorna indicando o n procurado ou, se este no foi encontrado, o n que seria seu
consecutivo.
12

4.2 BANCO DE DADOS E CONCEITOS ACID

Vrias examinadoras elaboram perguntas sobre as propriedades ACID de um banco
de dados, ento vale a pena revis-las. A minha fonte o livro Sistemas de Bancos
de Dados, de Ramez Elsmari e Shamkant Navathe, 4a edio, captulo 17.
Atomicidade um tudo ou nada: se houver alguma falha durante a
execuo, a transao desfeita. Ou, nas palavras dos autores, uma
transao uma unidade atmica de processamento; ou ela ser executada em
sua totalidade ou no ser de modo algum. O subsistema de restaurao de
transaes do SGBD o responsvel pela atomicidade.
Preservao de consistncia imagine que seja tirada umafotografia dos
dados de um banco de dados. Este o estado do BD. Aps a fotografia, feita
uma transao neste BD e retira-se uma nova foto. Se na primeira o BD estava
consistente, ento na segunda ele tem que estar tambm.
Citando a bibliografia, uma transao ser preservadora de consistncia se a
sua execuo completa fizer o banco de dados passar de um estado
consistente para outro. () Um estado do banco de dados a coleo de todos
os itens de dados armazenados no banco de dados em determinado momento.
A responsabilidade aqui dupla, sendo tanto do programador quanto do
mdulo do SGBD que garante as restries de integridade.
Isolamento o cada um por si: uma transao deve ser executada como se
estivesse isolada das demais. Isto , a execuo de uma transao no deve
sofrer interferncia de quaisquer outras transaes concorrentes. () imposto
pelo subsistema de controle de concorrncia do SGBD. O chamado nvel de
isolamento verdadeiro (nvel 3) no permite atualizaes perdidas, leitura de
sujeira nem leituras repetveis.
Durabilidade ou permanncia fez, est feito as mudanas aplicadas ao
banco de dados por uma transao efetivada devem persistir no banco de
dados. Essas mudanas no devem ser perdidas em razo de uma falha.
Responsabilidade: subsistema de restaurao do SGBD.



13

4.3 BANCO DE DADOS E OO(ORIENTAO A OBJETO)

Um banco de dados orientado a objetos um banco de dados em que cada
informao armazenada na forma de objetos, ou seja, utiliza a Estrutura de
dados denominada Orientao a objetos, a qual permeia as linguagens mais
modernas. O gerenciador do banco de dados para um orientado a objeto
referenciado por vrios como ODBMS ou OODBMS.
Existem dois fatores principais que levam a adoo da tecnologia de banco de dados
orientados a objetos. A primeira, que em umbanco de dados relacional se torna difcil
de manipular com dados complexos (esta dificuldade se d pois o modelo relacional
se baseia menos no senso comum relativo ao modelo de dados necessrio ao projeto
e mais nas contingncias prticas do armazenamento eletrnico). Segundo, os dados
so geralmente manipulados pela aplicao escrita usando linguagens de
programao orientada a objetos, como C++, C#, Java,Python ou Delphi (Object
Pascal), e o cdigo precisa ser traduzido entre a representao do dado e as tuplas da
tabela relacional, o que alm de ser uma operao tediosa de ser escrita, consome
tempo. Esta perda entre os modelos usados para representar a informao na
aplicao e no banco de dados tambm chamada de perda por resistncia.

Permite especificar e utilizar tipos abstratos de dados(TADs) da mesma forma
que os tipos de dados pr-definidos
TADs so tipos de dados definidos pelo usurio que encapsulam
comportamento e estrutura interna (atributos)
A tabela convencional estendida para permitir a referencia de objetos
(referncia de tipos), TADs e valores alfanumricos como domnio de colunas
Utiliza referncias para representar conexes inter-objetos tornando as
consultas baseadas em caminhos de referncia mais compactas do que as
consultas feitas com juno
Herana implementada organizando todos os tipos em hierarquias
Utiliza os construtores set, list, multiset ou array para organizar colees de
objetos
14


Nova Funcionalidade
Aumenta indefinidamente o conjunto de tipos e funes fornecidas pelo
SGBD
Desenvolvimento de aplicaes simplificado
Reuso de cdigo
Consistncia
Permite a definio de padres, cdigo reusvel por todas as aplicaes







13

4.4 ORM (OBJECT RELATIONAL MAPPING

ORM (Object Relational Mapper) uma tcnica de mapeamento de objeto relacional
que permite fazer uma relao 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
no se sentirem a vontade de escrever cdigo SQL e pela produtividade que esta
tcnica nos proporciona. Existem timos ORMs como Hibernate, NHibernate, Entity
Framework e etc.



Tudo comea como mostrado na figura acima, existem 2 mundos: o relacional e o
orinetado 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.




16

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






























17

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 contm
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











18

4.6 DIAGRAMA DE ATIVIDADE

Imagem Ilustrativa - Diagrama de Atividade


1- Bifurcao: Recebe apenas uma atividade e executa mais de um atividade
simultnea .
2- Merge: Recebe vrios fluxos e tem apenas uma sada.
3- Unio: Junta duas atividades e origina apenas uma atividade.
4- Deciso: Recebe apenas uma ao e diversas sadas




1-8|furcaco
3-Un|o
4-Dec|co
2-Merge
19

A autorizao do pagamento tem incio aps um pedido ter sido realizado pelo
cliente.
Ao mesmo tempo, a disponibilidade para cada um dos itens do pedido
verificada pelo depsito.
Se a quantidade requisitada de um determinado item existe em estoque, tal
quantidade associada ao pedido, caso contrrio, a quantidade do item ser
alterada (se houver em quantidade menor), se a quantidade em estoque for
igual a zero, o item ser excludo.
O pedido enviado pelo depsito ao cliente quando todos os itens estiverem
associados e o pagamento estiver autorizado.
O pedido ser cancelado se a ordem de pagamento no 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 alcanados. Sendo uma maneira fcil de ilustrar a
funcionalidade de um sistema.


















20


5 - CONCLUSO




Usando o Diagrama de Atividade, obtem-se um resultado mais claro e rpido
das funes de um sistema na implantao em uma empresa. J na criao e
organizao 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 alcanado. Garantido um programa amigvel para o usuario final.




































21



REFERNCIAS




Listas simplesmente encadeadas Osrio Germano e Silva Filho
Programao 1

Estruturas de Dados Raquel Marcia Mller
hLLp://www.uems.br/ acesso em 21/09/2012

Website Fbio 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

Você também pode gostar