OUTROS PARADIGMAS: PROGRAMAÇÃO

Documentos relacionados
Banco de Dados. Prof. Antonio

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

SQL Structured Query Language

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

Sistemas de Banco de Dados

Comandos de Manipulação

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

EXEMPLOS DE COMANDOS NO SQL SERVER

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

O que são Bancos de Dados?

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Linguagem de Consulta Estruturada SQL- DML

Principais Comandos SQL Usados no MySql

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

Processos e Threads (partes I e II)

Controle de transações em SQL

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

Faculdade Lourenço Filho - ENADE

SQL UMA ABORDAGEM INTERESSANTE

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

Projeto e Implementação

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Banco de Dados. Maurício Edgar Stivanello

Tarefa Orientada 13 Agrupamento e sumário de dados

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Tarefa Orientada 16 Vistas

2 Diagrama de Caso de Uso

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Exercícios de Lógica Exercícios de Fixação 08

Persistência e Banco de Dados em Jogos Digitais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Roteiro 2 Conceitos Gerais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Prof. Marcelo Machado Cunha

2 Desenvolvimento de Software Orientado a Aspectos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Structured Query Language (SQL)

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

Orientação a Objetos

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

INTRODUÇÃO. Diferente de Bando de Dados

Introdução Banco de Dados

Definida pelo American National Standard Institute (ANSI) em 1986

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Prof.: Clayton Maciel Costa

Softwares Aplicativos Banco de Dados

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Aspect-Oriented Programming AOP. Comentários Sérgio Crespo

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Tarefa Orientada 15 Manipulação de dados

NOME SEXO CPF NASCIMENTO SALARIO

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

P L A N I F I C A Ç Ã O A N U A L

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Banco de Dados. Profª. Ana Leda

5 Estudo de caso: utilizando o sistema para requisição de material

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Banco de Dados I. Introdução. Fabricio Breve

PROGRAMA. Objectivos Gerais :

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Disciplina: Unidade V: Prof.: Período:

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Introdução a Java. Hélder Nunes

Revisão de Banco de Dados


Introdução a Sistemas de Bancos de Dados

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Engenharia de Software III

Bases de Dados 2007/2008. Aula 1. Referências

Modelos. Comunicação com clientes

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

CONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento.

Engenharia de Requisitos Estudo de Caso

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

DML - SELECT Agrupando Dados

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

Transcrição:

OUTROS PARADIGMAS: PROGRAMAÇÃO CONCORRENTE, MODELO DE DADOS RELACIONAL (SQL), REDES DE PETRI, ORIENTAÇÃO A ASPECTOS Luenne Nailam e Uendson Teles

PROGRAMAÇÃO CONCORRENTE

PROGRAMA O que é um Programa? O que é Concorrência? Programação Concorrente Concorrência x paralelismo Tratamento de Threads Motivação Dificuldades do Paradigma

O QUE É UM PROGRAMA? Conjunto de instruções indicando uma ação a ser executada 1

O QUE É CONCORRÊNCIA? Concorrer: juntarse para uma ação ou fim comum; contribuir, cooperar Disputa por recursos Independência temporal 2

PROGRAMAÇÃO CONCORRENTE Paradigma de programação para a construção de programas de computador que fazem uso da execução concorrente (simultânea) de várias tarefas computacionais interativas podem ser implementadas como programas separados ou como um conjunto de threads criadas por um único programa podem ser executadas por um único processador, vários processadores em um único equipamento ou processadores distribuídos por uma rede 3

CONCORRÊNCIA X PARALELISMO Atividades paralelas são atividades concorrentes, contudo são tratadas sobre conjuntos de recursos independentes 4

CONCORRÊNCIA X PARALELISMO Arquivo Processo Impressora Física Figura 1 - Programa seqüencial acessando arquivo e impressora O processo envia um comando para a leitura do arquivo e fica bloqueado O disco é acionado para realizar a operação de leitura Concluída a leitura, o processo realiza a formatação e inicia a transferência dos dados para a impressora 5

CONCORRÊNCIA X PARALELISMO Arquivo Processo Impressora Física Figura 1 - Programa seqüencial acessando arquivo e impressora Como é uma impressora física, o processo executa um laço no qual os dados são enviados para a porta serial ou paralela apropriada Como o buffer da impressora é relativamente pequeno, o processo fica preso até o final da impressão 6

CONCORRÊNCIA X PARALELISMO Arquivo Processo Leitor Buffer Impressora Física Processo Impressor Figura 2 - Programa concorrente acessando arquivo e impressora Dois processos dividem o trabalho: O processo leitor é responsável por ler registros do arquivo, formatar e colocar em um buffer na memória O processo impressor retira os dados do buffer e envia para a impressora 7

CONCORRÊNCIA X PARALELISMO Arquivo Processo Leitor Buffer Impressora Física Processo Impressor Figura 2 - Programa concorrente acessando arquivo e impressora É suposto que os dois processos possuem acesso à memória onde está o buffer Eficiência maior, pois consegue manter o disco e a impressora trabalhando simultaneamente O tempo total para realizar a impressão do arquivo será menor 8

TRATAMENTO DE THREADS O recurso mais conhecido para paradigma concorrente implementar o dividem o trabalho que necessita ser realizado em duas ou mais partes O processador não necessita aguardar o término de uma instrução para iniciar outra pode-se iniciar no mínimo duas tarefas simultaneamente quando se está utilizando um processador de núcleo duplo Problema: um thread requisitar acesso a uma região da memória que já está utilizada por outra 9

TRATAMENTO DE THREADS Problema: um thread requisitar acesso a uma região da memória que já está utilizada por outra Resultado: uma interrupção repentina na execução do programa, podendo levar à perda de informações importantes contidas na memória de execução que ainda não haviam sido gravadas em um lugar definitivo 10

MOTIVAÇÃO Com o advento dos processadores com dois ou mais núcleos (cores) há um incentivo cada vez maior dos fabricantes de hardware para o desenvolvimento de softwares que utilizam à programação concorrente ela promove uma aceleração em aplicações de tratamento e edição de fotografias digitais, compactação e edição de filmes, até mesmo a compactação de arquivos está se beneficiando desse paradigma 11

DIFICULDADES DO PARADIGMA Custo elevado para pequenas empresas de desenvolvimento de software Maior complexidade e tempo para realização Manutenção e depuração de código 12

MODELO DE DADOS RELACIONAL (SQL)

PROGRAMA Conceitos do Modelo Relacional SQL Palavras-chave em SQL

CONCEITOS DO MODELO RELACIONAL Baseia-se em dois conceitos: Entidade: elemento caracterizado pelos dados que são recolhidos na sua identificação vulgarmente designado por tabela. Na construção da tabela identificam-se os dados da entidade. A atribuição de valores a uma entidade constrói um registro da tabela Relação: determina o modo como cada registro de cada tabela se associa a registros de outras tabelas 15

CONCEITOS DO MODELO RELACIONAL Linha é chamada tupla Cabeçalho de coluna é chamado atributo Tabela é chamada relação Tipo de dados que descreve os tipos de valores que podem aparecer em cada coluna é chamado de domínio 16

CONCEITOS DO MODELO RELACIONAL Figura 3 Exemplo de BD 17

CONCEITOS DO MODELO RELACIONAL Figura 4 Diagrama ER 18

SQL Linguagem padrão para os bancos de dados relacionais Structured Query Language linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional) muitas das características originais foram inspiradas na álgebra relacional 19

PALAVRAS-CHAVE EM SQL DML - Linguagem de Manipulação de Dados utilizado para realizar inclusões, consultas, alterações e exclusões de dados presentes em registros estas tarefas podem ser executadas em vários registros de diversas tabelas ao mesmo tempo INSERT - usada para inserir um registro (formalmente uma tupla) a uma tabela existente. SELECT - principal comando usado em SQL para realizar consultas a dados pertencentes a uma tabela. UPDATE - muda os valores de dados em uma ou mais linhas da tabela existente DELETE - permite remover linhas existentes de uma tabela 20

PALAVRAS-CHAVE EM SQL DDL - Linguagem de Definição de Dados permite definir tabelas novas e elementos associados CREATE - cria um objeto (uma Tabela, por exemplo) dentro da base de dados DROP - apaga um objeto do banco de dados alguns sistemas de banco de dados usam o comando ALTER permite ao usuário alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente 21

PALAVRAS-CHAVE EM SQL DCL - Linguagem de Controle de Dados controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados GRANT - autoriza ao usuário executar ou setar operações. REVOKE - remove ou restringe a capacidade de um usuário de executar operações. 22

PALAVRAS-CHAVE EM SQL DTL - Linguagem de Transação de Dados BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) - pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não. COMMIT - envia todos os dados das mudanças permanentemente. ROLLBACK - faz com que as mudanças nos dados existentes desde o último COMMIT ou ROLLBACK sejam descartadas 23

PALAVRAS-CHAVE EM SQL DQL - Linguagem de Consulta de Dados parte da SQL mais utilizada O comando SELECT permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado Esse comando é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas 24

PALAVRAS-CHAVE EM SQL Cláusulas condições de modificação utilizadas para definir os dados que deseja selecionar ou modificar em uma consulta FROM - utilizada para especificar a tabela que se vai selecionar os registros. WHERE utilizada para especificar as condições que devem reunir os registros que serão selecionados. GROUP BY utilizada para separar os registros selecionados em grupos específicos. HAVING utilizada para expressar a condição que deve satisfazer cada grupo. ORDER BY utilizada para ordenar os registros selecionados com uma ordem especifica. DISTINCT utilizada para selecionar dados sem repetição 25

PALAVRAS-CHAVE EM SQL Ordenadores Lógicos AND E lógico. Avalia as condições e devolve um valor verdadeiro caso ambos sejam corretos. OR OU lógico. Avalia as condições e devolve um valor verdadeiro se algum for correto NOT Negação lógica. Devolve o valor contrário da expressão 26

PALAVRAS-CHAVE EM SQL Operadores relacionais realiza comparações entre valores, em estruturas de controle 27

PALAVRAS-CHAVE EM SQL Operadores relacionais realiza comparações entre valores, em estruturas de controle BETWEEN utilizado para especificar um intervalo de valores LIKE utilizado na comparação de um modelo e para especificar registros de um banco de dados "Like" + extensão % significa buscar todos resultados com o mesmo início da extensão IN - utilizado para verificar se o valor procurado está dentro de uma lista. Ex.: valor IN (1,2,3,4) 28

PALAVRAS-CHAVE EM SQL Funções de Agregação AVG utilizada para calcular a média dos valores de um campo determinado. COUNT utilizada para devolver o número de registros da seleção. SUM utilizada para devolver a soma de todos os valores de um campo determinado. MAX utilizada para devolver o valor mais alto de um campo especificado. MIN utilizada para devolver o valor mais baixo de um campo especificado. 29

REDES DE PETRI 29

REDES DE PETRI Com o objetivo de desenvolver um modelo para que máquinas de estado pudessem se comunicar, Carl Adam Petri, então aluno de doutorado, defendeu sua tese, em 1962, com o título de Kommunikation mit Automaten (Comunicação com Autômatos). O modelo recebeu o nome de Redes de Petri (RdP) em homenagem ao autor. obteve como característica mais relevante a representação da concorrência. 30

REDES DE PETRI Encontram-se atualmente variações do modelo primitivo aplicadas em diversas áreas da ciência como biologia, engenharia, computação e economia (PENHA et al,2004). Dentre suas diversas aplicações na computação podese destacar a modelagem de sistemas de tempo real, paralelos, assíncronos e concorrentes. 31

REDES DE PETRI Redes de Petri é um modelo matemático que possibilita uma representação gráfica ampla proporcionando uniformidade na modelagem, análise e simulação de sistemas a eventos discretos. Além disso, permite uma visualização simultânea da sua estrutura e comportamento. as RdP modelam dois aspectos desses sistemas, eventos e condições, bem como, as relações entre eles 32

REDES DE PETRI Mesmo sendo a representação gráfica uma vantagem das RdP, a característica mais relevante do modelo é o formalismo. Desde a apresentação do modelo original, chamado de RdP Ordinárias, foram desenvolvidos vários trabalhos práticos e teóricos sobre RdP que levaram ao desenvolvimento de muitas variantes do modelo tendo em vista aplicações específicas. 33

REDES DE PETRI Uma dessas variações são as RdP Temporizadas, utilizadas na modelagem de sistemas que apresentam como característica a temporização. Basicamente, consistem em atribuir um determinado retardo de tempo a uma transição Podemos citar outros modelos desenvolvidos a partir do modelo original como as RdP Coloridas, RdP Hierárquicas, Rdp Generalizadas, RdP com Capacidade Finita, RdP Contínuas e as RdP Estocásticas. 34

REDES DE PETRI A aplicação de RdP na modelagem de sistemas computacionais é cada vez maior. São capazes de modelar sistemas com características como: concorrência, conflito, compartilhamento, controle e sincronismo. 35

REDES DE PETRI ELEMENTOS DE UMA REDES DE PETRI os lugares, que representam uma condição, uma atividade, um estado parcial, uma posição geográfica ou um recurso; as fichas, que indicam quando a condição associada ao lugar é verdadeira; as transições, que representam um evento que ocorre no sistema e; os arcos, que indicam os lugares de entrada ou saída para as transições, 36

REDES DE PETRI EVOLUÇÃO DA REDE as transições são responsáveis por colocar ou retirar as fichas dos lugares Um arco com origem em um lugar e término em uma transição (arco de entrada) indica que a transição retira uma ficha desse lugar. 37

REDES DE PETRI EVOLUÇÃO DA REDE um arco com origem numa transição e fim num lugar (arco de saída), indica que a transição coloca uma ficha nesse lugar. os arcos demonstram o sentido em que as fichas se deslocam de um lugar a outro, sempre passando por uma transição. 38

REDES DE PETRI EVOLUÇÃO DA REDE Sendo assim, a ocorrência do disparo de uma transição só é possível se existirem fichas nos lugares de entrada dessa transição A ficha é o elemento responsável por indicar o estado de uma RdP num determinado instante. 39

PROGRAMAÇÃO ORIENTADA A ASPECTOS A Programação Orientada a Aspectos - Aspect- Oriented Programming ou simplesmente AOP - foi introduzida em 1996 por Gregor Kickzales A AOP introduz um novo paradigma e um conjunto de diretrizes para facilitar o desenvolvimento de software. 40

PROGRAMAÇÃO ORIENTADA A ASPECTOS A AOP lida com um problema específico: capturar unidades consistentes de um sistema de software que as limitações dos modelos de programação tradicionais forçam a ficar espalhados por diversos pontos do sistema. 41

PROGRAMAÇÃO ORIENTADA A ASPECTOS RESPONSABILIDADES (CONCERNS) Sistemas de software consistem de um conjunto de responsabilidades distintas como responsabilidades funcionais e não-funcionais Existem também as preocupações relacionadas com o processo de desenvolvimento de software 42

PROGRAMAÇÃO ORIENTADA A ASPECTOS SEPARAÇÃO DE RESPONSABILIDADES (SEPARATION OF CONCERNS) A melhor maneira de se projetar um sistema é através da separação de suas responsabilidades distintas Porém algumas responsabilidades não são tão facilmente decompostas em apenas uma dimensão 43

PROGRAMAÇÃO ORIENTADA A ASPECTOS RESPONSABILIDADES TRANSVERSAIS (CROSSCUTTING CONCERNS) Em sistemas complexos, sempre existem responsabilidades de interesse comum que são utilizadas por vários módulos. Estas responsabilidades são difíceis de isolar porque são necessárias em vários pontos do código. 44

PROGRAMAÇÃO ORIENTADA A ASPECTOS RESPONSABILIDADES TRANSVERSAIS (CROSSCUTTING CONCERNS) Em sistemas complexos, sempre existem responsabilidades de interesse comum que são utilizadas por vários módulos. Com a OOP, os crosscutting concerns ficam espalhados por vários módulos em pequenos trechos de código 45

PROGRAMAÇÃO ORIENTADA A ASPECTOS RESPONSABILIDADES TRANSVERSAIS (CROSSCUTTING CONCERNS) A AOP complementa a OOP por introduzir uma nova dimensão para a decomposição das responsabilidades transversais: os aspectos. O paradigma da AOP consiste na separação das responsabilidades transversais de um sistema em aspectos. 46

PROGRAMAÇÃO ORIENTADA A ASPECTOS Os aspectos podem ser inseridos, alterados ou removidos em tempo de compilação. Por estarem em um único bloco de código, sua manutenção é mais simples. Além disso, o código das classes fica livre do código relacionado às responsabilidades transversais. 47

PROGRAMAÇÃO ORIENTADA A ASPECTOS DIVISÃO Decomposição: os vários concerns do sistema são identificados e classificados como comuns ou crosscutting. Implementação: os concerns são implementados separadamente em classes (para os concerns comuns) e aspectos (para os crosscutting concerns). Recomposição: o sistema é recomposto à partir dos concerns implementados segundo regras de recomposição. Esta fase é chamada de weaving. 48

PROGRAMAÇÃO ORIENTADA A ASPECTOS Uma implementação básica de AOP consiste em: uma linguagem para programar os componentes (por exemplo, Java). uma linguagem para programar os aspectos (por exemplo, o AspectJ) um weaver para combinar as duas linguagens (ferramenta que também faz parte do AspectJ) 49

PROGRAMAÇÃO ORIENTADA A ASPECTOS O AspectJ é uma ferramenta open source que acrescenta os conceitos de AOP à linguagem Java, através de uma extensão à linguagem: os "aspects". É especificada em termos de join points, pointcuts e advices, e tudo isto é encapsulado em um aspect. 50

PROGRAMAÇÃO ORIENTADA A ASPECTOS Join points: representam pontos bem definidos na execução de um programa onde um determinado aspecto pode ser aplicado. Pointcuts: pointcut é um agrupamento de join points baseando-se em um critério pré-definido. Advices: trechos de código que são executados nos pointcuts. Um advice contém as alterações que devem ser aplicadas ortogonalmente ao sistema 51

PROGRAMAÇÃO ORIENTADA A ASPECTOS Aspects: são similares a classes: têm um tipo, podem ser estendidos, podem ser abstratos ou concretos e podem conter campos, métodos e tipos como membros. Mas são diferentes de classes: não têm construtor nem destrutor, não podem ser criados com o operador "new", podem conter pointcuts e advices como membros e podem acessar membros de outros tipos. 52

PROGRAMAÇÃO ORIENTADA A ASPECTOS CONCLUSÃO A aplicação de técnicas de OOP para a implementação dos crosscutting concerns resulta em sistemas que são trabalhosos para implementar. Utilizando a AOP, pode-se criar implementações que são fáceis de desenhar, entender e manter. Acredita-se que os conceitos relacionados com aspectos estão na sua infância. 53

REFERÊNCIA BIBLIOGRÁFICA http://gersonc.anahy.org/ppdrep/04programacaoconc orrente-ppd.pdf http://pt.wikipedia.org/wiki/programa%c3%a7%c3% A3o_concorrente http://www.noll.pro.br/paradigmas_programacao_conc orrente.pdf

REFERÊNCIA BIBLIOGRÁFICA www.inf.pucrs.br/~ramos/sop_progconctext.doc http://pt.wikipedia.org/wiki/sql http://pt.wikipedia.org/wiki/modelo_relacional http://www2.unemat.br/~ivanpires/files/dwl/bd/slides/b d_5.pdf

REFERÊNCIA BIBLIOGRÁFICA http://www.ccet.unimontes.br/arquivos/mono grafias/224.pdf http://www.dextra.com.br/empresa/artigos/a spectprog.htm/