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

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

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

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

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

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

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

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

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

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

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

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com Um dos grandes diferenciais do PostgreSQL em relação à maioria dos outros sistemas de bancos de dados é a presença de diversas linguagens

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

Í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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.1.2 Definição Matemática de Imagem

2.1.2 Definição Matemática de Imagem Capítulo 2 Fundamentação Teórica Este capítulo descreve os fundamentos e as etapas do processamento digital de imagens. 2.1 Fundamentos para Processamento Digital de Imagens Esta seção apresenta as propriedades

Leia mais

Sistema de Reconhecimento de Impressões Digitais. Resumo

Sistema de Reconhecimento de Impressões Digitais. Resumo Sistema de Reconhecimento de Impressões Digitais Álvaro N. Prestes Relatório Técnico, Introdução ao Processamento de Imagens Programa de Engenharia de Sistemas e Computação - PESC/COPPE Universidade Federal

Leia mais

PostgreSQL 8.0. Diogo Biazus

PostgreSQL 8.0. Diogo Biazus PostgreSQL 8.0 Diogo Biazus PostgreSQL 7.X Totalmente ACID MVCC Tipos e operadores customizáveis Diversas linguagens procedurais Hot backup Código aberto (BSD) Facilidade de extensão PL/pgSQL, PL/Python,

Leia mais

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Resumo da Introdução de Prática de Programação com C. A Linguagem C Resumo da Introdução de Prática de Programação com C A Linguagem C 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

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

4 Criação de macros e introdução à linguagem VBA

4 Criação de macros e introdução à linguagem VBA 4 Criação de macros e introdução à linguagem VBA Vinicius A. de Souza va.vinicius@gmail.com São José dos Campos, 2011. 1 Sumário Tópicos em Microsoft Excel 2007 Introdução à criação de macros...3 Gravação

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

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

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

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

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

Apresentação... Nome: Vanderlei Cordeiro Frazão

Apresentação... Nome: Vanderlei Cordeiro Frazão Apresentação... Nome: Vanderlei Cordeiro Frazão Formação: - Bacharel em Sistemas de Informação (Uniguaçu) - Pós graduação em Docência no Ensino Superior (Uniguaçu) - Licenciatura em Informática (UTFPR)

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

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl AVALIAÇÃO DA QUALIDADE DO CÓDIGO FONTE ESCRITO EM PL/SQL Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,

Leia mais

Instituto Educacional de Castro Tecnologia em Sistemas para Internet

Instituto Educacional de Castro Tecnologia em Sistemas para Internet Instituto Educacional de Castro Tecnologia em Sistemas para Internet Profº. Luciano R. Rocha INSTALAÇÃO E MANUTENÇÃO DE BANCO DE DADOS TIPOS DE DADO Nome Aliases Descrição bigint int8 inteiro de oito bytes

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

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

André Milani. Novatec

André Milani. Novatec André Milani Novatec Sumário Agradecimentos...19 Sobre o autor...21 Prefácio...23 Capítulo 1 Bem-vindo ao PostgreSQL...25 1.1 O que é o PostgreSQL?...25 1.1.1 História do PostgreSQL...26 1.1.2 Licença

Leia mais

Extensão do SGBD PostgreSQL para suportar recuperação de imagens por conteúdo

Extensão do SGBD PostgreSQL para suportar recuperação de imagens por conteúdo Extensão do SGBD PostgreSQL para suportar recuperação de imagens por conteúdo Ernani Viriato de Melo V Jornada Científica 24/10/2006 Tópicos Abordados Motivação Imagens e Características PostgreSQL-IE:

Leia mais

Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I

Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I José Alberto F. Rodrigues Filho beto@beto.pro.br Firebird É a primeira geração, descendente do

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

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

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com MYSQL: TIPOS DE DADOS Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com TIPOS DE DADOS Bancos de dados, como falamos anteriormente, armazenam dados dentro de tabelas, na forma de linhas e colunas.

Leia mais

Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL

Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL O trabalho Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL de Fabiano Machado Dias e Eduardo Wolak

Leia mais

VERIFICAÇÃO DE ASSINATURAS NCR APTRA

VERIFICAÇÃO DE ASSINATURAS NCR APTRA VERIFICAÇÃO DE ASSINATURAS NCR APTRA Imagem é tudo. Proteja a sua. Primeira linha de defesa contra a fraude de assinaturas Você é constantemente pressionado para reduzir custos no processamento das funções

Leia mais

Persistindo dados com TopLink no NetBeans

Persistindo dados com TopLink no NetBeans Persistindo dados com TopLink no NetBeans O que é TopLink? O TopLink é uma ferramenta de mapeamento objeto/relacional para Java. Ela transforma os dados tabulares de um banco de dados em um grafo de objetos

Leia mais

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Manual do Desenvolvedor Criptografia de Arquivos do WebTA Manual do Desenvolvedor Criptografia de Arquivos do WebTA Versão 1.4 Índice 1. Objetivo..3 2. Processo..3 3. API de Criptografia - Biblioteca Java..4 3.1 WEBTACryptoUtil..4 3.1.1 decodekeyfile..4 3.1.2

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

Histórico de revisões

Histórico de revisões Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções

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

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Capítulo 6. Java IO - Ficheiros

Capítulo 6. Java IO - Ficheiros Capítulo 6. Java IO - Ficheiros 1/26 Índice Indice 6.1 - Entrada e saída de dados 6.2 - Ficheiros de texto 6.3 - Ficheiros com formato proprietário 6.4 - A classe File 2/26 Índice 6.1 Entrada e saída de

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

Consultoria e Treinamento em Bancos de Dados Relacionais

Consultoria e Treinamento em Bancos de Dados Relacionais Tabela de conteúdos CREATE TABLE AS...1 CREATE DOMAIN...1 Funções de dados...2 Funções de data e hora...2 Funções de agregação...3 Expressões condicionais...4 CASE...4 COALESCE...4 NULLIF...4 Controle

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 REVISÃO BANCO DE DADOS I O que é banco de dados? Ou seja afinal o que é um SGBD? REVISÃO BD I REVISÃO DE BD I Um Sistema de Gerenciamento de

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Software. Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS

Software. Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS Software Professora Milene Selbach Silveira Prof. Celso Maciel da Costa Faculdade de Informática - PUCRS ESQUEMA DE UM SISTEMA DE COMPUTADOR Unidades de Entrada - Teclado - Scanner - Caneta Ótica - Leitora

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

BANCO DE DADOS CONCEITOS BÁSICOS

BANCO DE DADOS CONCEITOS BÁSICOS Universidade Federal da Paraíba UFPB Centro de Energias Alternativas e Renováveis - CEAR Departamento de Eng. Elétrica DEE BANCO DE DADOS CONCEITOS BÁSICOS Isaac Maia Pessoa Introdução O que é um BD? Operações

Leia mais

Sistemas Embarcados Programação Embarcada

Sistemas Embarcados Programação Embarcada Sistemas Embarcados Programação Embarcada Instituto Federal de Pernambuco Coordenação de Informática/IFPE Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://alsm.cc Sistemas Embarcados Direitos

Leia mais

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

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados Sistema de Bancos de Dados Conceitos Gerais Sistema Gerenciador de Bancos de Dados # Definições # Motivação # Arquitetura Típica # Vantagens # Desvantagens # Evolução # Classes de Usuários 1 Nível 1 Dados

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

Leia mais

Acadêmico: Fabiano Bender. Orientadora: Joyce Martins FURB 2012/2

Acadêmico: Fabiano Bender. Orientadora: Joyce Martins FURB 2012/2 Acadêmico: Fabiano Bender Orientadora: Joyce Martins FURB 2012/2 Introdução Objetivos Fundamentação teórica Desenvolvimento do aplicativo Resultados Conclusão Extensões Ampla utilização dos SGBDs Dificuldades

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

Apresentação. Rio de Janeiro, 19 de fevereiro de 2002 Waldemar Celes

Apresentação. Rio de Janeiro, 19 de fevereiro de 2002 Waldemar Celes Apresentação A disciplina de Estruturas de Dados (ED) está sendo ministrada em sua nova versão desde o segundo semestre de 1998. Trata-se da segunda disciplina de informática oferecida no curso de Engenharia

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

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger a tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de BD Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de informação para nosso êxito no curso. A intenção de elaborar

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

Verificação de Impressões Digitais usando Algoritmos Genéticos

Verificação de Impressões Digitais usando Algoritmos Genéticos 1. Introdução Verificação de Impressões Digitais usando Algoritmos Genéticos Matheus Giovanni Pires, Fernando Vieira Duarte, Adilson Gonzaga Escola de Engenharia de São Carlos Universidade de São Paulo

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

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

Etapas de pré-processamento de imagens nas técnicas de reconhecimento biométricas por digitais

Etapas de pré-processamento de imagens nas técnicas de reconhecimento biométricas por digitais Etapas de pré-processamento de imagens nas técnicas de reconhecimento biométricas por digitais Cassiana da Silva Bonato 1, Roberto Mendes Finzi Neto 1 1 Departamento de Ciência da Computação Universidade

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA:

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: PROGRAMAÇÃO ORIENTADA A OBJETOS PROFESSOR: REINALDO GOMES ASSUNTO: REVISÃO DA INTRODUÇÃO A ORIENTAÇÃO

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

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

Construção de uma ferramenta para preenchimento de uma base de dados RAFAEL MUNDIM SILVA

Construção de uma ferramenta para preenchimento de uma base de dados RAFAEL MUNDIM SILVA Construção de uma ferramenta para preenchimento de uma base de dados RAFAEL MUNDIM SILVA Uberlândia-MG, Dezembro/2000 Construção de uma ferramenta para preenchimento de uma base de dados RAFAEL MUNDIM

Leia mais

PL/pgSQL. Introdução. Introdução. Introdução

PL/pgSQL. Introdução. Introdução. Introdução Introdução PL/pgSQL Banco de Dados II Prof. Guilherme Tavares de Assis PL/pgSQL (Procedural Language for the PostgreSQL) é uma linguagem procedural carregável desenvolvida para o SGBD PostgreSQL, que possui

Leia mais

Introdução ao IDE Netbeans (Programação Java)

Introdução ao IDE Netbeans (Programação Java) Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Java e Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas necessários...

Leia mais

Framework utilizando reflexão e aspectos para persistência de objetos em java

Framework utilizando reflexão e aspectos para persistência de objetos em java Framework utilizando reflexão e aspectos para persistência de objetos em java Antonio Carlos Rolloff (UNIPAR) acrolloff@gmail.com Arthur Cattaneo Zavadski (UNIPAR) arthur@datacoper.com.br Maria Aparecida

Leia mais

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA XML e Banco de Dados DCC/IM/UFBA Banco de Dados na Web Armazenamento de dados na Web HTML muito utilizada para formatar e estruturar documentos na Web Não é adequada para especificar dados estruturados

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

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 04 SGBD Sistemas Gerenciadores de Bancos de Dados Prof. MSc. Edilberto Silva edilms@yahoo.com Conceitos Básicos DADOS: são fatos em sua forma primária. Ex: nome do funcionário,

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

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

Banco de Dados II. Introdução Revisão - normalização -modelagem - sql básico

Banco de Dados II. Introdução Revisão - normalização -modelagem - sql básico Banco de Dados II Introdução Revisão - normalização -modelagem - sql básico Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com

Leia mais

AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS

AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS REVISTA DE CIÊNCIAS EXATAS E TECNOLOGIA AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS Eder Pazinatto Faculdade Anhanguera de Passo Fundo RESUMO: A busca por mecanismos que implementam segurança

Leia mais

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03)

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) MBA em Gestão de TI MÓDULO: BANCO DE DADOS E BUSINESS INTELIGENCE C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) PROFESSOR: Edison Andrade Martins Morais prof@edison.eti.br http://www.edison.eti.br

Leia mais