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