You are on page 1of 22

SISTEMA DE ENSINO PRESENCIAL CONECTADO TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE SISTEMAS GEROJECLEY ALMEIDA LVES

ATIVIDADE INTERDISCIPLINAR INDIVIDUAL

JUAZEIRO - BA 2012

GEROJECLEY ALMEIDA LVES

ATIVIDADE INTERDISCIPLINAR INDIVIDUAL 3 SEMESTRE

Trabalho apresentado ao Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas para obteno de nota do 3 semestre da Universidade Norte do Paran UNOPAR Professores: Polyanna Pacheco Gomes Roberto Y. Nishimura Marcio Chiaveli Merris Mozer

JUAZEIRO - BA 2012

SUMRIO INTRODUO..............................................................................................................3 LISTAS LINEARES......................................................................................................4 ACID..............................................................................................................................9 banco de dados relacional com a programao orientada a objetos.........................12 Object Relational Mapping (ORM) Mapeamento de Objeto Relacional..................13 HERANA E POLIMORFISMO..................................................................................17 CONCLUSO..............................................................................................................20 REFERNCIAS...........................................................................................................21

INTRODUO Este trabalho apresenta a produo textual interdisciplinar individual e ser abordada toda a matria do 3 Semestre do curso de Anlise e Desenvolvimento de Sistemas, dentro deste contexto sero apresentados os conceitos de listas lineares, FIFO, FILO, seus apontadores, ordens de incluso, excluso e pesquisa. Conceitos de alocao simplesmente encadeada, alocao duplamente encadeada, com suas respectivas representaes grfica. Sero abordados conceitos das propriedades ACID de uma transao e sua importncia para um SGBD; ORM, herana e poliformismo, bem como a utilizao de banco de dados relacional com a programao orientada a objetos. A respeito de a UML sero apresentados os conceitos de polimorfismo e herana, bem como exemplos que os representem em diagramas de classe.

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 dirios de listas lineares: - Letras de uma palavra - Palavras de uma frase - Pessoas esperando nibus 1.1 FIFO (FIRST IN FIRST OUT) O primeiro elemento que entrou o primeiro a sair. As listas so amplamente utilizadas em programao para implementar filas de espera. Em uma fila de tipo FIFO os elementos vo sendo colocados na fila e retirados (ou processados) por ordem de chegada. 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. Como exemplo de aplicao para filas, pode-se citar a fila de processos de um sistema operacional. Nela, estabelecido um tempo a ser usado por cada um dos processos. Se durante a execuo de um processo o tempo passa de a, este posto na fila e o processo seguinte executado. Se o processo seguinte no terminar de ser executado no tempo, ele posto na fila e o processo subsequente executado, e assim por diante at todos os processos serem executados.

Figura 1 esquema de funcionamento de uma fila FIFO

1.1.1 Aplicaes FIFO Os algoritmos FIFO's so comumente usados em circuitos eletrnicos de buffer e controle de fluxo, que vai desde o hardware at o software. Na forma de um hardware o FIFO consiste basicamente de um conjunto de ler e escrever ponteiros, armazenamento e lgica de controle. Armazenamento pode ser SRAM, flip-flops, fechos ou qualquer outra forma adequada de armazenamento. Para o FIFO, de tamanho no trivial, uma SRAM de porta dupla geralmente utilizada quando uma porta usada para a escrita e a outra para leitura. O FIFO sncrono aonde o mesmo clock usado para leitura e escrita. Um FIFO assncrono utiliza diferentes relgios para leitura e escrita. Uma aplicao comum de um FIFO assncrono utiliza um cdigo de Gray (cdigo binrio refletido), ou qualquer unidade de cdigo distncia, para ler e escrever os ponteiros para garantir a gerao de bandeira confivel. Uma nota mais preocupante que se deve necessariamente usar a aritmtica de ponteiro para gerar bandeiras para implementaes assncronas FIFO. Por outro lado, pode-se usar a abordagem

de um balde "de fuga" ou a aritmtica de ponteiro para gerar bandeiras nas implementaes sncronas FIFO. Exemplos de sinalizadores de status FIFO incluem: cheios, vazios, quase cheio, quase vazio, etc. 1.1.2 Vantagens e Desvantagens do FIFO Vantagens: O mais simples entre os processos de escalonamento; Todos os processos tendem a serem atendidos.

Desvantagens: Muito sensvel ordem de chegada; Se processos maiores chegarem primeiro aumentaro o tempo mdio de espera; No garante um tempo de resposta rpido; No eficiente em sistemas de tempo compartilhado; No eficiente em sistemas em tempo real.

1.2 FILO (FIRST IN, FIRST OUT) FILO (First In, Last Out, que em portugus significa primeiro a entrar, ultimo a sair) refere-se a estruturas de dados do tipo pilha. equivalente a LIFO, que significa Last In, First Out. 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. Usam-se os termos push e pop para denominar a insero e remoo de elementos da pilha, respectivamente. Usa-se o termo top para consultar o elemento do topo da pilha, sem o remover. Uma pilha uma lista linear na qual o primeiro elemento a entrar o

ltimo elemento a sair. Ela possui apenas uma entrada, chamada de topo, a partir da qual os dados entram e saem dela.

Figura 2 esquema de funcionamento de uma pilha FILO 1.3 ALOCAO SIMPLISMENTE ENCADEADA A maneira mais simples de acomodar uma lista linear em computador atravs da utilizao de um vetor. A representao por vetor explora a sequencialidade da memria de tal forma que os ns de uma lista sejam armazenados em endereos contguos, ou igualmente distanciados um do outro.

Figura 3 alocao simplesmente encadeada 1.3.1 Exemplos de algoritmos para as operaes de insero e retirada de um elemento numa pilha com alocao contnua: VARIVEIS: TOPO (ndice que indica a ltima posio ocupada) MXIMO (varivel cujo valor representa o tamanho do vetor)

VALOR (elemento includo/retirado)

1.4 ALOCAO DUPLAMENTE ENCADEADA Caractersticas: Listas foram percorridas do incio ao final. Ponteiro "anterior" necessrio para muitas operaes. Em alguns casos pode-se desejar percorrer uma lista nas duas direes indiferentemente. Nestes casos, o gasto de memria imposto por um novo campo de ponteiro pode ser justificado pela economia em no reprocessar a lista toda.

Type tpont = ^ trec; trec = record info:T; esq, dir: tpont; End; Lista = tpont; Var pont: Lista; Como consequncia, podemos realizar as operaes de insero e eliminao esquerda ou direita de um campo no interior de uma lista sem a necessidade de ponteiros "anteriores".

ACID Acrnimo de Atomicidade, Consistncia, Isolamento e Durabilidade. 1.5 TRANSAES A maioria dos programas desenvolvidos atualmente para uso multiusurio, um sistema de controle de estoque por exemplo. Imagine 10 terminais buscando e inserindo informaes a cada segundo em um servidor. Todos eles executam um conjunto de comandos que so solicitados de uma s vez. Uma Transao basicamente isso, um conjunto de comandos SQL em sequncia ou no, sendo que, todos os comandos deste conjunto devem ser executados e por completo. Para um bom funcionamento de um SGBD, necessrio que ele tenha um conjunto de propriedades, conhecido como ACID (Atomicidade, Consistncia, Isolamento e Durabilidade), onde estas propriedades vo definir como sero executadas as transaes. 1.6 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 Quando todas as aes so efetuadas com sucesso, a transao pode ser efetivada e persistida em banco (commit). 1.7 CONSISTNCIA Todas as regras e restries definidas no banco de dados devem ser obedecidas. Relacionamentos por chaves estrangeiras, checagem de valores para campos restritos ou nicos devem ser obedecidos para que uma transao possa ser completada com sucesso. 1.8 ISOLAMENTO tambm conhecido como integridade de transaes, estas devem

10

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. Outras transaes no podem visualizar os resultados parciais das operaes de uma transao em andamento (ainda em respeito propriedade da atomicidade). 1.9 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. Significa que os resultados de uma transao so permanentes e podem ser desfeitos somente por uma transao subsequente. Por exemplo: todos os dados e status relativos a uma transao devem ser armazenados num repositrio permanente, no sendo passveis de falha por uma falha de hardware. 1.10 IMPORTNCIA DO ACID PARA UM SGBD O ACID muito importante para um BD, pois este conjunto de caractersticas que garante a qualidade e segurana (contra falhas do sistema) das transaes, obtendo assim bons resultados no armazenamento correto das informaes. Cada propriedade tem sua importncia. Com a Atomicidade, as transaes so executadas com sucesso at o final, comando por comando, no caso de erro em qualquer um deles o SGBD deve desfazer o que foi alterado, ento temos a garantia de que os clculos, atualizaes, ou outras operaes no foram executadas incompletas, e sim at o fim com sucesso. J a Consistncia importante porque uma operao no pode violar a integridade dos dados, ou seja, aps executar uma transao, o banco de dados deve manter a consistncia dos dados, mesmo ocorrendo alteraes (Update, Insert...). O Isolamento vai evitar que a transao que est sendo executada, seja interferida ou interrompida por outra solicitao, evitando que erros aconteam. A Durabilidade vai garantir que os dados que foram gravados pelas transaes, no sejam perdidos ou danificados, mesmo que ocorra alguma falha no sistema, como travamento e queda de energia (desde

11

que no haja perda de hardware).

12

BANCO DE DADOS RELACIONAL COM A PROGRAMAO ORIENTADA A OBJETOS 1.11 ORIENTAO A OBJETOS VS MODELO ENTIDADE RELACIONAMENTO Um dos problemas na comunicao entre uma aplicao Java, por exemplo, e um banco de dados o conflito de paradigmas. O banco de dados organizado seguindo o modelo entidade relacionamento, enquanto as aplicaes Java, geralmente, utilizam o paradigma orientado a objetos. A transio de dados entre o modelo entidade relacionamento e o modelo orientado a objetos no simples. Para realizar essa transio, necessrio denir um mapeamento entre os conceitos desses dois paradigmas. Por exemplo, classes podem ser mapeadas para tabelas, objetos para registros, atributos para campos e referncia entre objetos para chaves estrangeiras. Para facilitar a comunicao entre aplicaes Java que seguem o modelo orientado a objetos e os banco de dados que seguem o modelo entidade relacionamento, podemos utilizar ferramentas que automatizam a transio de dados entre as aplicaes e os diferentes bancos de dados e que so conhecidas como ferramentas de ORM (Object Relational Mapper). Outra consequncia, ao utilizar uma ferramenta de ORM, que no necessrio escrever consultas em SQL, pois a prpria ferramenta gera as consultas de acordo com a sintaxe da linguagem SQL correspondente ao banco que est sendo utilizado.

13

OBJECT RELATIONAL MAPPING (ORM) MAPEAMENTO DE OBJETO RELACIONAL Mapeamento de Objeto Relacional (ORM) uma abordagem que permite a construo de sistemas utilizando o paradigma orientado a objetos com a persistncia destes objetos em bancos de dados relacionais. Utilizando-se de tcnicas e estratgias especficas, possvel mapear classes com seus atributos e associaes para o modelo relacional (SILVA, 2006). Segundo (AMBLER, 1999), o mapeamento de classes pode ser feito mediante a paridade entre classe e tabela, ou seja, uma classe mapeada para uma tabela. Este mapeamento direto de classes para tabelas representa a forma mais simples de mapeamento, tornando mais fcil o entendimento e a manuteno de uma aplicao. Mapeamento de Tabelas Simples

Porm, nem sempre o mapeamento to simples assim. No caso de uma estrutura hierrquica, vrias classes podem ser mapeadas para uma tabela, bem como uma classe pode ser mapeada para vrias tabelas. Mapeamento de Tabelas Complexo

14

As

tabelas

Classe1

Classe2

possuem,

respectivamente,

relacionamento com as tabelas Tabela1 e Tabela3. Esse mapeamento seria de certa forma trivial, e poderia ser tratado como relacionamento simples. Um terceiro relacionamento feito pelas duas tabelas impossibilita esse tratamento, pois ambas possuem atributos na Tabela2. Dessa forma necessrio que haja uma especificao de quais atributos pertencem a cada classe. Ao tratar do mapeamento de atributos de uma classe para colunas em tabelas de um banco de dados relacional, deve-se levar em conta que os atributos podem ser de tipos de dados primitivos como inteiros, pontos flutuantes, caracteres, booleanos e binrios, bem como ser de tipos de dados complexos como tipos baseados criados pelo usurio. Os atributos podem ser ainda multivalorados, o que viola as regras de normalizao do modelo relacional. Alm disso, podem existir atributos de controle ou utilizados em clculos, que geralmente no necessitam serem mapeados (AMBLER, 1999). Desta forma, os atributos simples podem ser mapeados diretamente para colunas em uma tabela, j os atributos complexos e multivalorados podem necessitar de tabelas adicionais para seu armazenamento. Estes atributos complexos, geralmente, possuem caractersticas recursivas, ou seja, so classes que possuem outros atributos e, assim, sucessivamente. O mapeamento segue o seguinte conceito: as classes mapeiam cada uma das tabelas do banco de dados de modo que as linhas dessas tabelas se tornam objetos e as colunas referem-se aos atributos dessa classe. Mapeamento de Tabelas, Objetos e Atributos

15

Essa tcnica possibilita mais do que cdigos limpos, permite que persistncias de objetos no banco de dados sejam feitas sem simples e transparente. O ORM se comporta como uma camada que possui uma gama de mtodos que cuidam dessa tarefa, tais como: create (cria um novo objeto da classe a partir dos dados da tabela), find (busca um determinado registro no banco e o torna um objeto da classe), delete (exclui registros do banco) e update (atualiza registros de uma tabela de acordo com as solicitaes). Esses mtodos variam de acordo com a linguagem utilizada. Na primeira tabela, possvel observar um pouco das facilidades e de como a legibilidade do cdigo fica melhor ao se utilizar o ORM ao invs de se injetar dentro de seu cdigo o SQL puro, o que fere as boas prticas de programao, que sugere que cdigos SQL estejam separados dos cdigos de desenvolvimento (RODRIGES; COSTA; SILVEIR, 2001).

Essa camada, chamada de persistncia, encontra-se entre a camada de negcio (onde esto as classes de domnio da aplicao, ou seja, classes que definem as regras de negcio) e o banco de dados. Esta camada permite que o impacto das modificaes em uma delas seja atenuado em relao outra. Isto diminui o grau de dependncia do banco de dados e aumenta a facilidade de manuteno do cdigo. Toda responsabilidade por persistir objetos fica a cargo da camada de persistncia, liberando a aplicao destas tarefas, e assim aumentando a produtividade no desenvolvimento (YODER; JOHNSON; WILSON, 1998). Na camada de persistncia est a definio das estratgias de mapeamento do modelo

16

orientado a objetos para o modelo relacional, apresentadas anteriormente. A camada de classes representa todo o conjunto de classes (controllers, views dentre outras) que podem utilizar mtodos da camada de persistncia. Assim, as transaes com o banco de dados ficam transparentes.

1.12

ORM (OBJECT RELATIONAL MAPPING) Uma excelente ferramenta ORM para Java o Hibernate, e para C#

o Entity Framework. Mas, existem outras que possuem o mesmo objetivo. 1.12.1 Hibernate Aps o sucesso do Hibernate, a especicao JPA (Java Persistence API) foi criada como objetivo de padronizar as ferramentas ORM para aplicaes Java e consequentemente diminuir a complexidade do desenvolvimento. Atualmente, essa especicao est na sua segunda verso. Ela especica um conjunto de classes e mtodos que as ferramentas de ORM devem implementar. Veja que a JPA apenas uma especicao, ela no implementa nenhum cdigo. Para isso, utilizamos alguma das diversas implementaes da JPA como, por exemplo, o Hibernate. Outras implementaes de JPA mais conhecidas so: TopLink, EclipseLink e OpenJPA. O Hibernate o mais antigo e mais utilizado atualmente.

17

HERANA E POLIMORFISMO 1.13 HERANA Esse um dos principais conceitos da POO. A herana o compartilhamento de atributos e operaes entre classes com base em relaes hierrquicas, ou seja, a utilizao de superclasses para criar as subclasses. Veja o exemplo abaixo:

1.13.1 Diagrama de Classe (Herana) Veja outro exemplo abaixo, Em geral, pode-se ter uma hierarquia de classes relacionadas por herana / generalizao. Em cada classe da hierarquia colocam-se as propriedades que so comuns a todas as suas subclasses, evitandose redundncia, promovendo a sua reutilizao.

18

1.14

POLIMORFISMO tambm oriunda da orientao a objetos, 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 1.14.1 Diagrama de Classe (Polimorfismo)

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

19

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

20

CONCLUSO Foi observado neste trabalho so importantes as estruturas de dados lineares e as principais diferenas entre suas diversas formas conceituais. E tambm as propriedades ACID e a sua importncia para um SGBD. Foi abordada a tcnica ORM que viabiliza a unio entre o banco de dados e POO que so os paradigmas da computao apresentados entre as vrias ferramentas de mercado, Hibernate. Foi observado que um dos problemas na comunicao entre uma aplicao desenvolvida em uma linguagem orientada a objeto e um banco de dados o conflito de paradigmas Por ltimo, tratamos dois conceitos vitais em orientao a objetos, herana e poliformismo com a ajuda dos diagramas de classes.

21

REFERNCIAS ASCENSIO, Ana Fernanda Gomes.Estrutura de Dados: algoritmos, anlise dacomplexidade e implementaes em Java e C/C++. So Paulo: Pearson PrenticeHall, 2010. NISHIMURA, Roberto Yukio.Banco de Dados II: sistemas. So Paulo: PearsonPrentice Hall, 2009. SILVA, Flvio de Almeida e. Desenvolvimento orientado a objetos I . So Paulo. Editora Pearson, 2009. TANAKA, Simone Sawasaki. Anlise de sistemas II. So Paulo. Editora Pearson, 2009. http://pt.wikipedia.org/wiki/objeto relacional Acessado em: 10/10/2012

You might also like