RECONHECIMENTO DE IMPRESSÕES DIGITAIS:

Tamanho: px
Começar a partir da página:

Download "RECONHECIMENTO DE IMPRESSÕES DIGITAIS:"

Transcrição

1 UNIVERSIDADE FEDERAL DA BAHIA FACULDADE DE CIÊNCIAS DA COMPUTAÇÃO BRUNO ARGOLO BITTENCOURT DE OLIVEIRA RECONHECIMENTO DE IMPRESSÕES DIGITAIS: UMA APLICAÇÃO UTILIZANDO CAMPOS BLOB Salvador 2006

2 BRUNO ARGOLO BITTENCOURT DE OLIVEIRA RECONHECIMENTO DE IMPRESSÕES DIGITAIS: UMA APLICAÇÃO UTILIZANDO CAMPOS BLOB Monografia apresentada ao Curso de graduação em Ciências da Computação, Faculdade de Ciências da Computação, Universidade Federal da Bahia, como requisito parcial para obtenção do grau de Bacharel em Ciências da Computação. Orientador: Prof. Leopoldo Souza Salvador 2006

3 AGRADECIMENTOS Muitos foram aqueles que contribuíram para este trabalho. É a eles que me dirijo nas breves palavras abaixo: À Professora. Fabíola Greve e todos os participantes do GAUDI (Grupo de Algoritmos e Computação Distribuída), especialmente Amadeu Júnior, que me cederam materiais, indicaram fontes e me permitiram participar de seminários, que muito contribuíram para elaboração deste trabalho. Ao Professor Orientador Leopoldo Souza, pela dedicação e tempo gasto no processo de orientação, e também por permitir a realização deste trabalho. Aos meus amigos e família pela ajuda e compreensão nos momentos de que tive que me ausentar. À Jane minha namorada que me apoiou com paciência durante todo o processo de desenvolvimento deste trabalho. Muito obrigado por possibilitarem esta experiência única, que é de grande importância para mim.

4 SUMÁRIO 1. INTRODUÇÃO OBJETIVO EMBASAMENTO TEÓRICO BLOB (Binary Large Objects) Impressões digitais FM (False Match) e FNM (False Non Match) Linhas Dactilares Núcleos e Deltas Sistema de Henry Minúcias (Detalhes de Galton) UDF (User Defined Function) PostgreSQL CYGWIN NFIS2 (NIST Fingerprint Image Software 2) PCASYS MINDTCT NFIQ BOZORTH FVC 2004(Fingerprint Verification Competition): PROJETO UDFs no Postgres UDFs em C no Postgres UDFs em Java no Postgres ESTATÍSTICAS CONCLUSÕES E PERSPECTIVAS FUTURAS REFERÊNCIAS... 36

5 LISTA DE FIGURAS Figura 1: FM, FNM e taxa de cruzamento... 6 Figura 2: Linhas dactilares...7 Figura 3: Delta e núcleo de uma impressão digital...7 Figura 4: Sistema de linhas...8 Figura 5: As cinco classes propostas por Henry, em destaque os núcleos e deltas...9 Figura 6: Movimentação das janelas...13 Figura 7: Formas de onda...14 Figura 8: Mapa direcional...15 Figura 9: Mapa de baixo fluxo...16 Figura 10: Mapa de qualidade...17 Figura 11: Impressão digital antes e depois da binarização...18 Figura 12: Padrões para detecção de finais de cristas...18 Figura 13. Padrões usados para detectar minúcias...19 Figura 14: Minúcias detectadas...20 Figura 15: Gráfico das incidências de FM para os quatro bancos de dados da FVC Figura 16: Gráfico das incidências de FNM para os quatro bancos de dados da FVC Figura 16: gráfico da qualidade das impressões dos quatro bancos de dados da FVC

6 LISTA DE TABELAS Tabela 1: As quatro bases de dados da FVC Tabela 2: Tipos em C equivalentes a tipos SQL para o PostgreSQL...25 Tabela 3: Incidências de FM...31 Tabela 4: Incidências de FNM para os quatro bancos de dados da FVC Tabela 5: qualidade das impressões nos quatro bancos de dados da FVC

7 LISTA DE CÓDIGOS Código 1: Convenção de chamada versão Código 2: Exemplo de UDF versão Código 3: Exemplo de como registrar uma função...26 Código 4: Definição do domain lo...26 Código 5: Método run da classe RunComand...27 Código 6: Registrando a UDF runcomand(varchar, varchar)...27 Código 7: Registrando a UDF ID_extrairMinucias(oid)...28 Código 8: Extraindo as minúcias...28 Código 9: Registrando a UDF ID_compararMinuciasINT(oid, oid, integer)...29 Código 10: Comparando impressões digitais...30 Código 11: Buscando impressões do mesmo dedo...30 Código 12: registrando a UDF ID_qualidade(oid)...31 Código 13: Comparando os 8 primeiros dedos com todos os outros de um banco da FVC...31 Código 14: Obtendo a taxa de FM...32 Código 15: Obtendo a taxa de FNM...33 Código 17: obtendo a qualidade das impressões dos quatro bancos de dados da FVC

8 RESUMO O foco deste trabalho é o estudo de maneiras para incorporar o reconhecimento de impressões digitais em um banco de dados popular e de código aberto, de modo a simplificar esse processo para os usuários de bancos de dados, estimulando o uso desta tecnologia, visando o aprimoramento das técnicas existentes e propondo alternativas simples e seguras para se trabalhar com a datiloscopia. São estudadas duas aproximações para extender o SGBD, para que seja possível fazer todo o controle, armazenamento e comparação das impressões apenas através do mesmo. A proposta geral é contribuir com um passo inicial para que tanto a comunidade desenvolvedora de software livre quanto a comunidade privada possam construir aplicações de reconhecimento de impressões digitais eficientes, seguras e integradas. 1

9 ABSTRACT This paper focuses in the study of alternatives to incorporate the fingerprint recognition technology in a popular yet open source database, in a way to simplify the fingerprint recognition process to database users. Stimulating the use of this technology, aiming the improvement of the existent techniques, proposing simple and safe alternatives to work with dactiloscopy. Two different approaches are proposed to extend the DBMS (Database Management System), in order to make it possible to control, store and compare fingerprints only throughout it. The general proposal is to contribute with an initial push so both the free software community and the private one may build efficient, safe and integrated fingerprint recognition applications. 2

10 1. INTRODUÇÃO Num mundo cada vez mais interconectado, a necessidade de validar a identidade de um indivíduo de maneira rápida e segura se torna cada vez mais evidente. O reconhecimento de impressões digitais, abordado na biometria, vem se mostrando uma alternativa promissora no que se refere aos meios automáticos de identificação pessoal. A biometria aborda diversos meios de identificação pessoal, reconhecimento pela face, retina, íris, voz, entre outros. A datiloscopia é a parte da biometria que estuda o reconhecimento de impressões digitais. Esta ciência vem sendo usada desde 1893 quando o Home Ministry Office, do Reino Unido, concordou que dois indivíduos distintos não podem ter as mesmas impressões digitais (Maio et al., 2003). Logo após isto, grandes departamentos criminais adotaram a idéia de registrar as impressões digitais de todos os criminosos capturados. Apesar da improvisação de métodos para aumentar a eficiência do reconhecimento manual das impressões, o crescimento excessivo da demanda e a lentidão da realização de todo o processo de reconhecimento levou os departamentos da lei a depreender esforços consideráveis em pesquisas sobre a automação do reconhecimento de impressões digitais. Estes esforços culminaram com surgimento dos AFISs (Automatic Fingerprint Identification Systems) (Maio et al.,2003). Primeiramente usados pelas agências de manutenção da lei, os AFIS logo se revelaram como uma boa tática para redução do número de fraudes em aplicações comerciais, seja em catracas eletrônicas, gerenciamento de informações de cunho confidencial ou simplesmente para destravar o teclado de um celular. 2. OBJETIVO Tornar a tecnologia de reconhecimento de impressões digitais mais segura e acessível à comunidade por meio do encapsulamento das funções de reconhecimento e classificação de impressões digitais em banco de dados livre e do armazenamento das impressões propriamente ditas também no banco de dados através de campos BLOB (Binary Large Objects), possibilitando, ainda, uma maior visibilidade da tecnologia pelos desenvolvedores de software livre e por empresas privadas. Aumentando, possivelmente, o interesse destas nesta tecnologia, o que traria grandes benefícios ao desenvolvimento da área. 3

11 3. EMBASAMENTO TEÓRICO 3.1 BLOB (Binary Large Objects) Muitos dos antigos sistemas de bancos de dados foram desenvolvidos para manipular dados pequenos, representados em campos de 255 bytes ou menos. Campos grandes constantemente apresentavam problemas para os SGBDs (Sistema de Gerenciamento de Banco de Dados) (Shapiro et al., 1999). SGBDs mais recentes apresentam suporte a campos LOBs (Large Objects), nos quais é possível armazenar grandes quantidades de dados. Os campos BLOB são nada mais do que campos LOB, porém com conteúdo binário, uma vez que campos LOB podem conter texto em ASCII, por exemplo. Muitas das pesquisas feitas sobre o desenvolvimento de mecanismos para gerenciar sistemas de dados com campos LOB têm como foco os seguintes objetivos (Shapiro et al., 1999): Alocação e desalocação devem ser eficientes; O gerenciador de campos LOB deve ter boa performance de I/O (Input / Output), sendo que as operações de leitura e escrita devem alcançar taxas próximas às de transferência de disco; Campos LOB devem ser recuperáveis, mas o processo de recuperação não deve tornar as operações no campo mais lentas. Pesquisas em sistemas de bancos de dados e de sistemas de arquivos resultaram em mecanismos de armazenamento rápidos e eficientes, o que faz os usuários de bancos de dados se perguntarem cada vez mais sobre as vantagens de se utilizar armazenamento em BLOB (Shapiro et al., 1999). Kurt (Löwnertz, 1998) comenta no livro Change and Exchange que os sistemas de gerenciamento eletrônico de documentos mais integrados e seguros são aqueles que usam campos BLOB. O argumento utilizado é que os documentos devem ser acessados somente pelo sistema de gerenciamento para que uma integração total do processo possa ser assegurada. Ninguém pode criar editar ou apagar um documento sem passar pelo SGBD. Além disso, existe a possibilidade de utilização dos mecanismos de controle de integridade, transação e controle de concorrência, eliminando possíveis problemas de inconsistência. Por outro lado, essa idéia esbarra no problema do pouco conhecimento que o SGBD possui sobre o dado armazenado como BLOB (na verdade o BLOB é considerado uma "caixa preta") (Queiroz, 2002). O SGBD não fornece mecanismo para 4

12 possibilitar a criação de índices ou criação de operações sobre estes campos, sendo necessário o desenvolvimento de "extensões" do SGBD para poder trabalhar com estes campos (Queiroz, 2002). A armazenagem em campos BLOB tem seu preço. Os arquivos podem ocupar mais espaço e a leitura e escrita se tornarem mais lentas. Porém, neste projeto não entraremos no mérito sobre qual sistema de armazenamento é mais eficiente, mas simplesmente construiremos uma aplicação que utilize armazenamento em campos BLOB aplicado no reconhecimento de impressões digitais. 3.2 Impressões digitais No que se refere à aquisição, existem duas maneiras mais utilizadas: uma é a impressão tintada, onde o individuo mela o dedo com tinta e rola o mesmo sobre um papel, na intenção de não ocorrerem borrões e manchas, mas, ainda assim, os mesmos ocorrem rotineiramente, seja por falta ou excesso de tinta ou ainda pela execução errada do movimento de rolagem do dedo (Chong et al., 1992), (Hong et al., 1996). Se a qualidade não corresponder a um padrão aceitável torna-se extremamente difícil a verificação da impressão (Coetze et al., 1993), (Eleccion, 1973); o outro método consiste na utilização de um sensor biométrico, onde a impressão é lida diretamente do dedo da pessoa através de um scanner. Dependendo do domínio da aplicação um sistema biométrico pode operar on-line ou off-line. Um sistema on-line tem fortes restrições quanto ao tempo de resposta e é, em geral, completamente automático. Sistemas off-line podem ter menor restrição de tempo e a atividade pode ser supervisionada por um técnico. Por exemplo, em um sistema prisional um expert forense pode guiar a coleta das impressões podendo garantir um maior nível de qualidade das impressões FM (False Match) e FNM (False Non Match) Um sistema biométrico típico comete dois tipos de erros: falsa aceitação (FM - FALSE MATCH) e falsa rejeição (FNM - FALSE NON MATCH) (Maio et al., 2003). A falsa aceitação ocorre quando o sistema verifica erroneamente a legitimidade de um impostor. Já na falsa rejeição o individuo legitimo não é reconhecido quando duas de suas impressões são verificadas. As taxas de FM e FNM são dependentes uma da outra. Uma baixa taxa de FM conduz a uma alta taxa de FNM e vice-versa. O número de minúcias que serão comparadas é dependente do nível de segurança especificado. Quanto maior a segurança, maior é o número de minúcias verificadas, mas isso aumenta a taxa de falsa rejeição (Costa, 2001), podendo gerar transtornos para os usuários do sistema. A relação entre as taxas de FM e FNM é mostrada na figura 1. 5

13 Figura 1: FM, FNM e taxa de cruzamento. Taxas de FM e FNM não foram levantadas para este projeto já que isso é uma preocupação específica do tipo de aplicação no qual o sistema será utilizado Linhas Dactilares Na literatura, a caracterização de aspectos de impressões digitais tem sido apresentada por Galton (Karu et al., 1996), Henry (Henry, 1905) e pelo FBI (FBI, 1984). Galton foi o primeiro a fazer um estudo dos aspectos das impressões digitais (Costa, 2001). Galton constatou que a impressão digital é formada por linhas, chamadas de linhas dactilares. Essas linhas se dividem em cristas e vales, onde as cristas são formadas pela parte em relevo das linhas, e os vales situam-se entre duas cristas. Em uma imagem, tanto em papel, como em meio magnético, as cristas são representadas pela parte escura da imagem, e os vales pela parte clara (Oliveira, 2002). 6

14 Figura 2: Linhas dactilares Núcleos e Deltas Henry foi o primeiro a dividir as impressões em diferentes classes, definindo um sistema de classificação designado de o sistema de Henry (Rao et al., 1978). Para se classificar as impressões são utilizados pontos singulares chamados núcleos e deltas (figura 3) Figura 3: Delta e núcleo de uma impressão digital. O núcleo fica localizado na área central da impressão digital (Costa, 2001). O delta é um ângulo ou triângulo formado pelas cristas e pode ser formado pela bifurcação de uma linha simples ou pela brusca divergência de duas linhas paralelas. Os deltas representam o ponto de divergência das linhas dactilares mais internas que tendem a envolver a região nuclear de uma impressão digital. Em impressões digitais isentas de pontos delta, verifica-se somente os sistemas de linhas basilar e marginal, caso dos arcos planos. As impressões que apresentam um ou dois deltas, possuem três sistemas de linhas denominados: nuclear (região central de impressão), basilar (linha que serve de base, abaixo da região nuclear) e marginal (região das características situadas nas margens de impressão) como mostrado na figura 4. 7

15 Figura 4: Sistema de linhas Sistema de Henry Este sistema classifica as impressões digitais em cinco classes. São elas: Arco Plano: Não apresentam delta, as linhas são levemente curvas, atravessando o dado de um lado ou outro. Arco Angular: Apresentam acentuada elevação das linhas no centro, em forma de tenda. Pode apresentar um delta, mas sem linha ou fragmento de linha entre o delta e o núcleo. Presilha Interna (Direita): Apresenta um delta à direita do observador, as linhas dactilares correm para a esquerda em forma de laçadas, ou seja, as linhas formam-se à esquerda do observador, curvam-se e tendem a voltar para o mesmo lado. Presilha Externa (Esquerda): Apresentam um delta à esquerda do observador, as linhas dactilares correm para a direita do observador, ou seja, as linhas formam-se na direita do observador, curvam-se no centro da impressão e tendem a voltar para o mesmo lado. Verticilo: Apresentam dois deltas, sendo um à direita e outro à esquerda o observador; as linhas nucleares ficam encerradas entre os dois deltas, assumindo configurações variadas. 8

16 Figura 5: As cinco classes propostas por Henry, em destaque os núcleos e deltas. Segundo O FBI (Federal Bureau of Investigation), foi constatado que 65% dos padrões são presilhas, 30% são verticilos e 5% são arcos (Moayer et al., 1975) Minúcias (Detalhes de Galton) As minúcias são acidentes que se encontram nas cristas, quando estas terminam abruptamente ou se bifurcam. O conjunto de acidentes (minúcias) em uma impressão digital é único e pode ser usado para distinguir um ser humano de outro. Segundo Costa (2001), doze minúcias encontradas em uma impressão digital são suficientes para que seja feita a identificação de uma pessoa. O retorno de um programa comparador de minúcias é geralmente um score ou pontuação, que indica o grau de similaridade entre as impressões ou simplesmente a quantidade de minúcias em comum. Para tomar a decisão se as impressões são de um mesmo dedo utiliza-se um ponto de corte t. Se a quantidade de minúcias em comum nas duas impressões ultrapassar o valor de t então temos um casamento, do contrário dizemos que as duas impressões não puderam ser verificadas como pertencendo ao mesmo dedo. 3.3 UDF (User Defined Function) Em bancos de dados SQL (Structured Query Language) uma UDF é um mecanismo para estender as funcionalidades do SGBD ao se criar funções que podem ser usadas nos comandos 9

17 SQL. UDFs podem ser invocadas do mesmo modo que as funções intrínsecas do SGBD, como a função replace (varchar, varchar, varchar), por exemplo. Conceitualmente a UDF é executada uma vez por linha da consulta, por exemplo, numa tabela de elementos químicos, chamada ELEMENTOS, onde cada elemento tem seu ponto de fusão em Farenheights, poderíamos construir uma UDF chamada FarenheightToCelsius (float) onde ao rodar o comando SQL: SELECT elemento, FarenheightToCelsius( pontofusao ) as pontofusao FROM ELEMENTOS será retornado o nome do elemento e o ponto de fusão em Celsius para cada linha da tabela. UDFs não devem ser confundidas com Stored Procedures. Esta última permite apenas que o usuário agrupe comandos SQL ou de outra linguagem. Ela pode aceitar parâmetros e executar comandos mas não é uma expressão e portanto não pode ser usada como uma UDF. 3.4 PostgreSQL PostgreSQL é um sistema de gerenciamento de dados objeto-relacional, baseado no Postgres 4.2, desenvolvido na Universidade da Califórnia no departamento de Ciências da Computação. O Postgres foi pioneiro em diversos conceitos que apenas se tornaram disponíveis em bancos de dados comerciais muito tempo depois. O PostgreSQL suporta grande parte dos padrões SQL e devido a seu tipo de licença BSD (Berkeley Software Distribution), pode ser modificado e distribuído por qualquer um gratuitamente e para qualquer propósito, seja privado, comercial ou acadêmico, de código aberto ou fechado. Este foi o SGBD escolhido, pois além de ser um sistema aberto com licença flexível o PostgreSQL é um banco altamente flexível onde UDFs e Procedures podem ser construídas em mais de uma dúzia de linguagens diferentes. 3.5 CYGWIN O CYGWIN é um ambiente LINUX para Windows, que consiste de duas partes: uma DLL dygwin1.dll que age como uma camada de emulação de API provendo grande parte das funcionalidades das APIs do LINUX e um conjunto de ferramentas que provêm acesso as estas funcionalidades, entre estas ferramentas está um SHELL LINUX. 10

18 O CYGWIN não roda aplicativos nativos do Linux. É necessário recompilar a aplicação para que a mesma possa rodar. O mesmo também não serve para tornar aplicativos linux cientes das funcionalidades UNIX. 3.6 NFIS2 (NIST Fingerprint Image Software 2) Em conjunto com o GAUDI (Grupo de Algoritmos e Computação Distribuída) da UFBA (Universidade Federal da Bahia), com o qual foi obtida maior parte da bibliografia sobre impressões digitais, foi obtido ainda o pacote de softwares NFIS2, pertencente ao NIST (National Institute of Standards and Technology) e ao FBI (Federal Bureal of Investigation). O FBI vem utilizando tecnologia digital para ajudar a colher, guardar e localizar impressões desde No começo dos anos noventa, a agência começou a desenvolver uma sistema para permitir o compartilhamento de impressões digitais entre diferentes agências. Este sistema é chamado de IAFIS (Integrated Automated Fingerprint Identification System). Ao longo dos anos o FBI acumulou mais de quarenta milhões de impressões e chegam a lidar com mais de sessenta mil requisições diárias relacionadas às mesmas. A demanda, originada inicialmente para dar suporte a investigações criminais, começaram também a abranger pedidos para condução de checagem de civis, a carga de trabalho que era antes 80% criminal e 20% civil está rapidamente se aproximando de 50% criminal e 50% civil. Devido à necessidade de um grande melhoramento na velocidade, a qualidade da verificação automática de impressões digitais o FBI em conjunto com o NIST criou o NFIS. Este pacote, agora na versão 2, contém código fonte em C e roda na plataforma Unix, mas pode ser compilado no Windows usando o CYGWIN. O NFIS2 é dividido em sete pacotes dos quais apenas cinco serão usados neste projeto, são eles: o PCASYS: Classificador impressões digitais o MINDTCT: Detector de minúcias. o NFIQ: Rede neural para detecção da qualidade da imagem o BOZORTH3: um sistema de comparação de minúcias o IMGTOOLS: pacote de softwares manipuladores de imagens. Destes pacotes merecem destaque o MINDTCT e o BOZORTH3, que juntos são responsáveis pela identificação de uma impressão digital. O PCASYS e o NFIQ podem ser 11

19 utilizados meramente como forma de aumentar performance do sistema ao possibilitar a criação de índices PCASYS Possibilita a classificação das impressões em um dos seguintes tipos: arco, arco angular, presilha esquerda, presilha direita, verticilo e cicatriz. Não será usado neste projeto pelo fato de só trabalhar com impressões pertencentes ao SD14 (NIST special database 14) MINDTCT Os algoritmos usados no MINDTCT foram inspirados pelo "Home Office's Automatic Fingerprint Recognition System" especialmente o conjunto de algoritmos comumente referidos como "HO39". O MINDTCTD foi desenvolvido para receber uma imagem scaneada a 19,9 ppmm e com 256 níveis de cinza. O programa pode ler arquivos nos formatos: ANSI/NIST, WSQ (Wavelet Scalar Quantization), JPEGL (JPEG Loss Less), e formatos IHEAD. a. Geração de mapas de qualidade de imagem Devido ao fato de que a qualidade da imagem de uma impressão digital poder variar, especialmente no caso de impressões latentes (impressões deixadas em cenas de crime), torna-se crítica a possibilidade de analisar a imagem e determinar áreas degradadas. Diversas características podem ser medidas para se obter uma representação da qualidade da área. O que inclui determinar o fluxo direcional das cristas, regiões de baixo contraste, pequeno fluxo de cristas e grandes curvaturas. Estas três últimas condições representam áreas instáveis na imagem onde a detecção das minúcias não é confiável. a.1 Mapa Direcional Este é um mapa de fluxo das cristas, que tem como propósito representar áreas da imagem com estrutura de cristas suficientes para a detecção de minúcias. Cristas visíveis e bem formadas são essenciais para que se possa haver confiança na detecção das minúcias. O mapa direcional guarda ainda a orientação geral das cristas. A técnica usada pelo MINDTCT para fazer o mapa direcional consiste em dividir a imagem em blocos de 8x8 pixels, onde todos os pixels de cada bloco recebem os mesmos resultados. Ao usar a estratégia de blocos deve-se escolher a área necessária para extrair as informações. O MINDTCT utiliza uma janela de 24 pixels de onde são extraídas as informações para determinar a direção do fluxo das cristas de um bloco. O centro da janela é posicionado no 12

20 centro do bloco como mostrado na figura 01. Este processo ajuda a diminuir a descontinuidade da direção dos fluxos das cristas. Figura 6: movimentação das janelas. A última linha da figura 06 ilustra o funcionamento do esquema de janelas. Na figura os blocos estão representados pela linha e coluna, ou seja, o bloco 1,1 é o bloco na linha 1 coluna 1. A imagem mais à esquerda mostra o bloco 1,1 sendo computado, em seguida a janela se move um bloco para a direita; estamos agora na segunda imagem onde o bloco 1,2 é computado; em seguida vem o bloco 2,1 e o 2,2. Uma vez descrito o modus operandi do esquema de janelas e blocos, podemos explicar como se dá o processamento em cada bloco. Para cada bloco, a janela é rotacionada incrementalmente em ângulos de 11,25º e para cada rotação uma transformada de Fourier discreta é feita e armazenada para cada bloco. Para determinar a direção do fluxo das cristas em cada bloco cada uma das orientações da janela é analisada. Dentro de cada orientação as linhas da janela são somadas formando um vetor de 24 somatórios de linhas. As 16 orientações geram um vetor com 16 vetores de somatórios de linhas. Cada vetor deste é sobreposto a quatro tipos de onda de freqüências crescentes. Isto é 13

21 mostrado na figura 7. A primeira forma de onda tem um único período, a segunda tem dois períodos, a terceira tem quatro períodos e a quarta tem oito períodos. Os valores de seno e co-seno são calculados para cada unidade do vetor. O quadrado do seno é somado ao quadrado do co-seno produzindo um coeficiente de ressonância que representa quão bem o vetor se encaixa na forma de onda. Figura 7: formas de onda. A primeira forma de onda representa as cristas e vales com largura de cerca de 12 pixels. A segunda forma de onda representa cristas e vales com 6 pixels de largura. A terceira forma de onda representa cristas e vales com 3 pixels de largura. Finalmente a quarta forma de onda representa cristas e vales com 1,5 pixel de largura. Dadas imagens de 19,69 ppmm este procedimento cobre cristas e vales com valores que vão de 0,6mm a 0,075mm. 14

22 Figura 8: mapa direcional. a.2 Mapa de baixo contraste Em alguns casos é difícil ou até impossível determinar a direção dominante em certas partes da imagem, principalmente em áreas de baixo contraste ou com manchas e borrões. É desejável realizar a detecção destas áreas e prevenir que sejam associadas direções de fluxo de cristas artificialmente às mesmas. Minúcias não são detectadas em áreas de baixo contraste. Uma maneira de distinguir blocos com baixo contraste de blocos, com cristas bem definidas é comparar a distribuição das intensidades dos pixels. Numa área com baixo contraste a intensidade varia pouco entre os pixels. Já quando as intensidades dos pixels variam de muito alto para muito baixo isto quer dizer que a área apresenta cristas bem definidas. a.3 Mapa de baixo fluxo É possível que ao derivar o mapa direcional alguns blocos fiquem sem direção dominante. Estes blocos geralmente são áreas de baixa qualidade. Então, alguns destes blocos terão direção definida com base nos seus vizinhos. Porém, é gerado um mapa que guarda quais blocos não tiveram a direção definida no primeiro momento. Estes blocos ganham graus de confiabilidade/qualidade menores do que outros. O mesmo ocorre em áreas com grandes curvaturas, principalmente com os deltas. No caso de uma minúcia ser identificada numa área de grande curvatura esta minúcia ganha um grau de confiabilidade/qualidade baixo. A figura 9 mostra marcadas com cruzes brancas as áreas de grande curvatura. 15

23 Figura 9: mapa de baixo fluxo. a.4 Mapa de qualidade Como vimos, os blocos de baixo contraste, grandes curvaturas ou aqueles a que não foram atribuídas direções numa primeira análise apontam para blocos de baixa qualidade, que culminam na formação de um mapa de qualidade como mostrado na figura 10, onde cada número representa um fator de qualidade do bloco de mesma posição: 16

24 b. Binarização da imagem Figura 10: mapa de qualidade. O algoritmo de detecção de minúcias foi desenvolvido para trabalhar com imagens binárias (pretas e brancas). Uma técnica para binarizar imagens é o algoritmo de Threshold. Threshold é uma palavra da língua inglesa que significa limiar, limite. O algoritmo do threshold baseia-se em escolher um ponto limite para o nível de cinza (no caso de 0 a 255) e transformar todos os pixels abaixo ou neste limite em 0 e todos acima deste limite em 1. Desta forma temos a binarização da imagem que deixará de ser em níveis de cinza para se tornar preta e branca. É importante notar que devido aos diferentes níveis de contraste e qualidade das diferentes áreas de uma mesma impressão digital, o ideal é dividir a imagem em pequenos blocos de 8x8 ou 10x10 pixels, e então calcular um ponto limite diferente para cada um desses blocos, isso se chama threshold adaptativo. A figura 11 mostra uma imagem antes e depois da binarização. 17

25 Figura 11: impressão digital antes e depois da binarização. c. Detecção de minúcias: Este passo consiste em scanear a imagem binária em busca de padrões que indiquem o fim ou a bifurcação de cristas. Um destes padrões pode ser verificado na figura 12. O padrão mais à esquerda contém 6 pixels binários em uma configuração 2x3. Este padrão representa o fim de uma crista que veio da direita. O mesmo ocorre com o próximo padrão e o depois deste, na verdade o este conjunto de padrão podem ser representados como mostrado no padrão mais à direita. Figura 12: padrões para detecção de finais de cristas. Candidatos à minúcia são detectados ao se scanear consecutivos pares de pixels em uma imagem procurando seqüências que casem com os padrões. Os scaneamentos são feitos vertical e horizontalmente, para fazer a varredura horizontal basta rotacionar os padrões no sentido horário. Usando esta representação uma série de padrões de minúcias é descrito como mostrado na figura 13. São dois padrões representando finais de cristas e o resto representa diferentes 18

26 bifurcações de cristas. Os padrões recebem ainda o atributo apearing/disapearing que serve para representar a direção da qual a crista veio. Figura 13. Padrões usados para detectar minúcias. d. Remoção de minúcias falsas: Com a utilização destes padrões minúcias são detectadas usando apenas seis pixels. Isso minimiza as chances de não se detectar uma minúcia mas em compensação muitas falsas minúcias são detectadas, sendo necessário removê-las. Neste passo, fragmentos de finais de cristas e marcas de tinta indesejáveis (ilhas) e possíveis pontos vazios dentro das cristas são removidos. Também são removidas as minúcias detectadas sobre áreas nas quais não foram detectados a direção do fluxo das cristas, ou localizadas em áreas marcadas como de baixa qualidade. e. Atribuição de qualidade às minúcias Mesmo com a remoção de minúcias falsas, muitas destas minúcias persistem, e um sistema para medir a qualidade da minúcia pode ajudar a diminuir o impacto das minúcias falsas na medida que podemos dar preferência a comparação das minúcias de mais alta qualidade. Dois fatores são combinados para se produzir uma pontuação de qualidade para cada minúcia detectada. O primeiro fator é pego diretamente do mapa de qualidade, com quatro sendo a maior e zero a menor qualidade. O segundo fator é baseado em estatísticas simples dos pixel (média e desvio padrão) imediatamente vizinhos num raio de 11 pixels. Uma região de alto contraste na impressão terá um nível de contraste significativo que deve cobrir toda a escala cinza (de 0 a 255). Conseqüentemente, a média da intensidade dos pixels nas vizinhanças deve estar bastante perto de 19

Reconhecimento de Dados Biométricos em Larga Escala

Reconhecimento de Dados Biométricos em Larga Escala Reconhecimento de Dados Biométricos em Larga Escala Profa. Fabíola Gonçalves Pereira Greve DCC - UFBA Departamento de Ciência da Computação Grupo de Algoritmos e Computação Distribuída http:// Equipe Profa.

Leia mais

Índice: Nitgen do Brasil www.nitgen.com.br

Índice: Nitgen do Brasil www.nitgen.com.br Índice: CAPÍTULO 3. PROGRAMAÇÃO EM DELPHI...2 3.1 INICIALIZANDO E FECHANDO O MÓDULO...2 3.1.1 Inicializando o módulo...2 3.1.2 Fechar o módulo após o uso...2 3.2 RELACIONANDO OS SENSORES NA PROGRAMAÇÃO...2

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

Experimentos com a memória cache do CPU

Experimentos com a memória cache do CPU Experimentos com a memória cache do CPU Alberto Bueno Júnior & Andre Henrique Serafim Casimiro Setembro de 2010 1 Contents 1 Introdução 3 2 Desvendando o cache 3 2.1 Para que serve o cache?.....................

Leia mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

Leia mais

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2 ISBN 978-85-61091-05-7 Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 Definição de uma tecnologia de implementação e do repositório de dados para a criação da ferramenta

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Adriano J. Holanda http://holanda.xyz 28/8/2015 Índices Para os testes com os índices criaremos uma tabela chamada tteste com o comando teste=> CREATE TABLE tteste (id int4);

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Capítulo 7 O Gerenciador de Arquivos

Capítulo 7 O Gerenciador de Arquivos Capítulo 7 O Gerenciador de Arquivos Neste capítulo nós iremos examinar as características da interface do gerenciador de arquivos Konqueror. Através dele realizaremos as principais operações com arquivos

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Manual de implantação

Manual de implantação Manual de implantação O BioPass ID é um serviço online baseado em nuvem que fornece uma poderosa tecnologia multibiométrica (reconhecimento de impressões digitais e face) para os desenvolvedores de qualquer

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

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

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

enbsp - NBioBSP NITGEN Biometric Service Provider SDK Manual do Desenvolvedor SDK version 4.xx

enbsp - NBioBSP NITGEN Biometric Service Provider SDK Manual do Desenvolvedor SDK version 4.xx Índice: CAPÍTULO 1. INTRODUÇÃO... 3 Módulo NBioBSP COM... 3 Módulo NBioBSP Class Library... 3 Módulo Data Conversion... 3 Módulo Image Conversion... 3 1.1 CARACTERÍSTICAS... 4 Interface Gráfica para o

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira

Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira www.linksinfo.com.br Tutorial versão 1.0 Sobre o Logic basic: Parte 1 Sobre o Logic Basic e o SQL O Logic Basic é uma linguagem de programação

Leia mais

Tutorial: Abrindo Vídeos e Medindo Comprimentos no ImageJ

Tutorial: Abrindo Vídeos e Medindo Comprimentos no ImageJ 1 1. Introdução Tutorial: Abrindo Vídeos e Medindo Comprimentos no ImageJ O ImageJ é um software livre (freeware) que pode ser obtido gratuitamente no site http://rsb.info.nih.gov/ij/. Esse software é

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

Leia mais

CONTENÇÕES NO SGBD MICROSOFT SQL SERVER 2008 R2

CONTENÇÕES NO SGBD MICROSOFT SQL SERVER 2008 R2 CONTENÇÕES NO SGBD MICROSOFT SQL SERVER 2008 R2 ROMULO RUBENS CUNHA JUNIOR 1 IREMAR NUNES DE LIMA 2 Resumo: Este artigo aborda os tipos de contenções que podem ocorrer no Sistema Gerenciador de Banco de

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

NOVIDADES DO JAVA PARA PROGRAMADORES C

NOVIDADES DO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Digitalização. Copiadora e Impressora WorkCentre C2424

Digitalização. Copiadora e Impressora WorkCentre C2424 Digitalização Este capítulo inclui: Digitalização básica na página 4-2 Instalando o driver de digitalização na página 4-4 Ajustando as opções de digitalização na página 4-5 Recuperando imagens na página

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server

Leia mais

Tecnologia de Soluções Biométricas Neokoros AFIS Corporate / SDK: Visão Geral

Tecnologia de Soluções Biométricas Neokoros AFIS Corporate / SDK: Visão Geral Tecnologia de Soluções Biométricas Neokoros AFIS Corporate / SDK: Visão Geral www.neokoros.com Neokoros IT Ltd. Biometric Technology. All Rights Reserved: 2010 2014 Índice 1 - Introdução... 3 2 - AFIS

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

Leia mais

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião INTRODUÇÃO BANCO DE DADOS Prof. Msc. Hélio Esperidião BANCO DE DADOS Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas a um determinado

Leia mais

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada.

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada. Editor de Ladder para VS7 Versão Teste O editor de ladder é um software de programação que permite que o VS7 e o µsmart sejam programados em linguagem de contatos. Esse editor está contido na pasta Público

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 4 Ambiente de desenvolvimento Java QI ESCOLAS E FACULDADES Curso Técnico em Informática SUMÁRIO A LINGUAGEM JAVA... 3 JVM, JRE, JDK... 3 BYTECODE... 3 PREPARANDO O AMBIENTE

Leia mais

Sistemas de Informação. Sistemas Operacionais 4º Período

Sistemas de Informação. Sistemas Operacionais 4º Período Sistemas de Informação Sistemas Operacionais 4º Período SISTEMA DE ARQUIVOS SUMÁRIO 7. SISTEMA DE ARQUIVOS: 7.1 Introdução; 7.2 s; 7.3 Diretórios; 7.4 Gerência de Espaço Livre em Disco; 7.5 Gerência de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SISTEMAS DE ARQUIVOS MACHADO/MAIA: CAPÍTULO 11 Prof. Pedro Luís Antonelli Anhanguera Educacional SISTEMAS DE ARQUIVOS - INTRODUÇÃO O armazenamento e a recuperação de informações é

Leia mais

2. Detalhes do Griaule Forensic Fingerprint

2. Detalhes do Griaule Forensic Fingerprint Índice 1. Requisitos dos Sistema; a. Sistema Operacional; b. DotNET Framework; c. Processador; d. Memória RAM; 2. Detalhes do Griaule Forensic Fingerprint: a. Sobre; b. Funcionalidades; c. Detecção automática

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Portal AEPQ Manual do utilizador

Portal AEPQ Manual do utilizador Pedro Gonçalves Luís Vieira Portal AEPQ Manual do utilizador Setembro 2008 Engenharia Informática - Portal AEPQ Manual do utilizador - ii - Conteúdo 1 Introdução... 1 1.1 Estrutura do manual... 3 1.2 Requisitos...

Leia mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) RETURNS INTEGER AS $$ DECLARE PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Continuando as aulas sobre os fundamentos

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05

Leia mais

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo. Banco de Dados StructuredQuery Language- SQL Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.com 2015 A Origem Em 1970, Ted Codd (pesquisador da IBM) publicou o primeiro

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

Algoritmos e Programação I

Algoritmos e Programação I Algoritmos e Programação I Introdução a Computação Prof. Fernando Maia da Mota mota.fernandomaia@gmail.com CPCX/UFMS Fernando Maia da Mota 1 Computadores são dispositivos que só sabem fazer um tipo de

Leia mais

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes Pág 4 Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes 1 APRESENTAÇÃO DA UNIDADE CURRICULAR A unidade curricular de Lógica para a programação tem como objetivo promover o estudo dos principais

Leia mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Árvore B UNITINS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 3º PERÍODO 43

Árvore B UNITINS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 3º PERÍODO 43 AULA A 3 ESTRUTURA RA DE DADOS Árvore B Esperamos que, ao final desta aula, você seja capaz de: identificar as vantagens da árvore B em relação às árvores binária de busca e AVL; conhecer as funções de

Leia mais

Banco de Dados. Prof. Dr. Rogério Galante Negri

Banco de Dados. Prof. Dr. Rogério Galante Negri Banco de Dados Prof Dr Rogério Galante Negri Tradicionalmente O armazenamento dos dados utilizava arquivos individuais, sem nenhum relacionamento Cada programa utilizava seu próprio sistema de arquivo

Leia mais

LINGUAGEM C UMA INTRODUÇÃO

LINGUAGEM C UMA INTRODUÇÃO LINGUAGEM C UMA INTRODUÇÃO AULA 1 Conceitos muito básicos 1 Introdução O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,

Leia mais

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

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

UFES Universidade Federal do Espírito Santo Centro de Ciências Agrárias Departamento de Engenharia Rural Disciplina de Banco de Dados.

UFES Universidade Federal do Espírito Santo Centro de Ciências Agrárias Departamento de Engenharia Rural Disciplina de Banco de Dados. Ativando o MySQL Tutorial MySQL Passo1: Verificar onde (path, caminho) o MySQL está instalado. Figura 1. Diretório de instalação do MySQL Nome do Arquivo MySqld Mysqld-debug Mysqld-nt Mysqld-max Mysqld-max-nt

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

Instalação do IBM SPSS Modeler Server Adapter

Instalação do IBM SPSS Modeler Server Adapter Instalação do IBM SPSS Modeler Server Adapter Índice Instalação do IBM SPSS Modeler Server Adapter............... 1 Sobre a Instalação do IBM SPSS Modeler Server Adapter................ 1 Requisitos de

Leia mais

Guia de Início Rápido

Guia de Início Rápido Guia de Início Rápido O Microsoft PowerPoint 2013 parece diferente das versões anteriores, por isso criamos este guia para ajudar você a minimizar a curva de aprendizado. Encontre o que você precisa Clique

Leia mais

CIÊNCIA E TECNOLOGIA DO RIO

CIÊNCIA E TECNOLOGIA DO RIO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE BANCO DE DADOS II Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia

Leia mais

Identificação Humana Através de Biometria

Identificação Humana Através de Biometria Identificação Humana Através de Biometria por Marco César Chaul, CBP. Diretor de Tecnologias Neokoros - Brasil CBP Certified Biometric Professional. Fundamentos da Biometria Definição de Biometria Termo

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures) PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos

1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos 1. NÍVEL CONVENCIONAL DE MÁQUINA (Cont.) 1.3. INSTRUÇÕES Conceitos Básicos Já estudamos anteriormente que os processadores funcionam (ou melhor, o seu hardware funciona) através de ordens simples e básicas,

Leia mais

PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7

PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7 PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7 PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7 Sobre o PostGIS PostGIS é um Add-on (complemento, extensão)

Leia mais

www.leitejunior.com.br 29/06/2012 14:30 Leite Júnior QUESTÕES CESPE BACKUP

www.leitejunior.com.br 29/06/2012 14:30 Leite Júnior QUESTÕES CESPE BACKUP QUESTÕES CESPE BACKUP QUESTÃO 01 - Analise as seguintes afirmações relativas a cópias de segurança. I. No Windows é possível fazer automaticamente um backup, em um servidor de rede, dos arquivos que estão

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

Disciplina: Unidade V: Prof.: E-mail: Período:

Disciplina: Unidade V: Prof.: E-mail: Período: Encontro 17 Disciplina: Sistemas de Banco de Dados Unidade V: Introdução à Linguagem SQL Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM 13. Introdução à Linguagem SQL Introdução

Leia mais

Utilizando bibliotecas externas

Utilizando bibliotecas externas Você pode estender as capacidades nativas do Visual FoxPro aproveitando as vantagens das facilidades dos controles ActiveX (.arquivos OCX ) e bibliotecas de vínculo dinâmico (DLLs). As bibliotecas externas

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

SISTEMA AFIS Curso de Atualização para Promoção

SISTEMA AFIS Curso de Atualização para Promoção SISTEMA AFIS Curso de Atualização para Promoção Wanderlin Mota Classificador Polícia Civil do Estado de Goiás Curso Superior de Tecnologia em Redes de Computadores Goiânia, Novembro/2014 Ciências Grécia:

Leia mais

JDBC Java Database Connectivity

JDBC Java Database Connectivity 5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 6.9 Memória Cache: A memória cache é uma pequena porção de memória inserida entre o processador e a memória principal, cuja função é acelerar a velocidade de transferência das informações entre a CPU e

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Iniciação à Informática

Iniciação à Informática Meu computador e Windows Explorer Justificativa Toda informação ou dado trabalhado no computador, quando armazenado em uma unidade de disco, transforma-se em um arquivo. Saber manipular os arquivos através

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção Este procedimento corresponde ao fluxo de trabalho de Indexação de OCR com separação de código de correção no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se na

Leia mais

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais